我需要幫助,以瞭解如何在C#應用程序中創建自定義文件擴展名。我創建了基本的筆記管理應用程序。現在我將筆記保存爲.rtf(note1.rtf)。我希望能夠創建一個只有我的應用程序能夠理解的文件擴展名(例如,note.not,也許)如何在C#中創建自定義文件擴展名?
回答
文件擴展名是您的格式的任意選擇,它只依賴於您的應用程序註冊某個文件擴展名爲Windows中某種類型的文件,安裝後。
通過自己的文件格式通常意味着使用只有您的應用程序可以解析的格式保存該格式。它可以是純文本格式或二進制格式,甚至可以使用XML或任何格式,關鍵是您的應用程序應該能夠輕鬆解析它。
我認爲這是創造合適的註冊表值,
您可以保存任何你想要的擴展文件,只要把它的文件名保存文件時。
我覺得你的問題是「我如何用RTF以外的東西來保存文件?」。你必須創造你自己的格式,但你實際上並不想要這樣。您仍然可以將RTF保存到名爲mynote.not的文件中。
我會建議你繼續使用可從其他程序讀取的格式。您的用戶一旦想要使用他們的筆記做某些事情,而您的程序不支持,他們會很感激。
有你的問題的兩種可能的解釋:
應該是什麼我的文檔的文件格式?
您正在以RTF格式保存您的筆記。無論您選擇將其保存爲什麼文件擴展名,任何瞭解RTF格式的應用程序都可以打開您的筆記,只要用戶知道它在RTF中並將該應用程序指向該文件即可。
如果您想以自定義文件格式保存文檔,以便其他應用程序無法讀取它們。你需要想出一些代碼,這些代碼可以使用Rich Edit控件生成的RTF流(我假設你在你的應用中用作編輯器),並使用你自己的格式將它串行化爲二進制流。
我個人不認爲這是值得的......
什麼是我的文檔的文件擴展名
您目前保存RTF格式文檔與.rtf文件擴展名。其他應用程序與該文件擴展名關聯,因此在Windows資源管理器中雙擊此文件將打開該應用程序而不是您的應用程序。
如果您希望能夠在Windows資源管理器中雙擊文件並打開您的應用程序,則需要更改所使用的文件擴展名,併爲該擴展名創建適當的關聯。
文件擴展名關聯由註冊表中的條目定義。您可以創建這些每臺機器(在HKLM \ Software \ Classes)或每個用戶(在HKCU \ Software \ Classes中),儘管每臺機器是最常見的情況。有關實際註冊表條目以及MSDN文檔和示例鏈接的更多詳細信息,請查看我對此的回答SO question on Vista document icon associations。
作爲部署點,您應該注意ClickOnce支持文件擴展名(只要它不處於「僅在線」模式)。這使配置系統識別新的文件擴展名變得輕而易舉。
你可以在VS2008的項目屬性 - >發佈 - >選項 - >文件關聯中找到它。如果你沒有VS2008,你也可以do it manually,但它並不好玩。
- 1. 在C++中創建自定義控件時擴展控件
- 2. 如何創建自定義JUnit5擴展
- 3. C++中的自定義文件擴展
- 4. 如何在C中創建自定義文件名?
- 5. 創建自己的文件擴展名
- 6. 如何在C中爲文件擴展名定義「.txt」常量?
- 7. 自定義文件擴展名IIS7
- 8. 如何使用自定義擴展在文檔目錄中創建文件?
- 9. C#創建自定義的文件擴展名和資源添加到它
- 10. 在VB 2008中創建一個自定義的文件擴展名
- 11. 在C#中確定文件擴展名#
- 12. 如何在SSRS 2008中創建自定義渲染擴展
- 13. 如何在java中使用自定義文件擴展名保存文件?
- 14. C:根據文件名創建新的文件擴展名
- 15. 如何創建自己的.odt或.doc文件擴展名?
- 16. 在Typo3中創建自定義擴展或插件6.0.4
- 17. 如何在Objective-C中創建帶有圖像的自定義鍵盤擴展?
- 18. 如何在C擴展中創建自定義Python異常類型?
- 19. 如何在C#中創建擴展?
- 20. 如何在java中通過擴展名(.ini)創建文件?
- 21. 如何在j2ee中創建「<filename> .view」擴展名文件
- 22. 如何在Electron應用程序中指定自定義文件擴展名?
- 23. 在C++中的自定義數據文件擴展
- 24. 如何通過在ionic2中擴展BaseInput來創建自定義窗體組件
- 25. 如何在html文件類型中設置自定義擴展
- 26. 使用擴展名創建自定義UIButton
- 27. 將文件保存到自定義文件擴展名
- 28. 如何在自定義控件中創建名爲valuechanged的自定義事件
- 29. 如何在bash中創建具有特定擴展名的臨時文件?
- 30. 自定義按鈕擴展名的文件名下載
順便說一句,與其他類型(不管其他類型)相比,什麼是「自定義」擴展? – 2009-04-23 06:33:56
@John - 請參閱Jon Limjap和Franci Penov的答案:-) – MarlonRibunal 2009-04-23 17:47:44