2009-04-23 90 views
5

我需要幫助,以瞭解如何在C#應用程序中創建自定義文件擴展名。我創建了基本的筆記管理應用程序。現在我將筆記保存爲.rtf(note1.rtf)。我希望能夠創建一個只有我的應用程序能夠理解的文件擴展名(例如,note.not,也許)如何在C#中創建自定義文件擴展名?

+0

順便說一句,與其他類型(不管其他類型)相比,什麼是「自定義」擴展? – 2009-04-23 06:33:56

+0

@John - 請參閱Jon Limjap和Franci Penov的答案:-) – MarlonRibunal 2009-04-23 17:47:44

回答

8

文件擴展名是您的格式的任意選擇,它只依賴於您的應用程序註冊某個文件擴展名爲Windows中某種類型的文件,安裝後。

通過自己的文件格式通常意味着使用只有您的應用程序可以解析的格式保存該格式。它可以是純文本格式或二進制格式,甚至可以使用XML或任何格式,關鍵是您的應用程序應該能夠輕鬆解析它。

1

您可以保存任何你想要的擴展文件,只要把它的文件名保存文件時。

我覺得你的問題是「我如何用RTF以外的東西來保存文件?」。你必須創造你自己的格式,但你實際上並不想要這樣。您仍然可以將RTF保存到名爲mynote.not的文件中。

我會建議你繼續使用可從其他程序讀取的格式。您的用戶一旦想要使用他們的筆記做某些事情,而您的程序不支持,他們會很感激。

4

有你的問題的兩種可能的解釋:

應該是什麼我的文檔的文件格式?

您正在以RTF格式保存您的筆記。無論您選擇將其保存爲什麼文件擴展名,任何瞭解RTF格式的應用程序都可以打開您的筆記,只要用戶知道它在RTF中並將該應用程序指向該文件即可。

如果您想以自定義文件格式保存文檔,以便其他應用程序無法讀取它們。你需要想出一些代碼,這些代碼可以使用Rich Edit控件生成的RTF流(我假設你在你的應用中用作編輯器),並使用你自己的格式將它串行化爲二進制流。

我個人不認爲這是值得的......

什麼是我的文檔的文件擴展名

您目前保存RTF格式文檔與.rtf文件擴展名。其他應用程序與該文件擴展名關聯,因此在Windows資源管理器中雙擊此文件將打開該應用程序而不是您的應用程序。

如果您希望能夠在Windows資源管理器中雙擊文件並打開您的應用程序,則需要更改所使用的文件擴展名,併爲該擴展名創建適當的關聯。

文件擴展名關聯由註冊表中的條目定義。您可以創建這些每臺機器(在HKLM \ Software \ Classes)或每個用戶(在HKCU \ Software \ Classes中),儘管每臺機器是最常見的情況。有關實際註冊表條目以及MSDN文檔和示例鏈接的更多詳細信息,請查看我對此的回答SO question on Vista document icon associations

9

作爲部署點,您應該注意ClickOnce支持文件擴展名(只要它不處於「僅在線」模式)。這使配置系統識別新的文件擴展名變得輕而易舉。

你可以在VS2008的項目屬性 - >發佈 - >選項 - >文件關聯中找到它。如果你沒有VS2008,你也可以do it manually,但它並不好玩。

相關問題