2009-04-23 17 views
5

私はC#アプリケーションでカスタムファイル拡張子を作成する方法について助けが必要です。私は基本的なメモ管理アプリケーションを作成しました。今私はメモを.rtf(note1.rtf)として保存しています。私のアプリケーションだけが理解できるファイル拡張子を作成できるようにしたい(例えば、note.notのようなもの)C#でカスタムファイル拡張子を作成する方法は?

+0

ところで、他の種類(他の種類のもの)とは対照的に、「カスタム」の拡張機能は何ですか? –

+0

@John - Jon Limjap氏とFranci Penov氏の回答を参照してください:-) – MarlonRibunal

答えて

8

ファイル拡張子はあなたのフォーマットに任意の選択です。インストール時に、Windowsの特定の種類のファイルとして拡張子。

通常、独自のファイル形式は、アプリケーションだけが解析できる形式を使用してその形式を保存することを意味します。プレーンテキストまたはバイナリのどちらでもかまいませんし、XMLやその他の形式を使用することもできますが、あなたのアプリケーションは簡単に解析できるはずです。

2

私はあなたがファイルを保存するときにファイル名だけでそれを置く、あなたが好きな拡張子を持つファイルを保存することができ、それが正しいレジストリ値を作成するの問題だと思う

またはこのcodeproject's article

+0

そして、私はあなたのデプロイメントシステム(セットアッププロジェクト、MSI世代、またはあなたが使用しているものなど)に登録の正確な詳細を考慮させます。 – peSHIr

1

をご確認ください。

私はあなたの問題が「どのようにRTF以外のファイルに保存できますか?」と感じています。独自のフォーマットを作成する必要がありますが、実際にはそのフォーマットは必要ありません。まだRTFをmynote.notという名前のファイルに保存できます。

他のプログラムから読み込み可能な形式を使用することをお勧めします。プログラムでサポートされていないノートで何かしたいと思ったら、あなたのユーザーは感謝します。

4

あなたの質問の2つの可能性のある解釈があります。

は、マイドキュメントのファイル形式でなければなりませんか?

現在、ノートをRTF形式で保存しています。どのファイル拡張子を保存するかにかかわらず、RTF形式を理解しているアプリケーションはRTF形式であることを知っていればそのメモを開くことができます。

ドキュメントをカスタムファイル形式で保存して、他のアプリケーションがそれらを読み取れないようにする場合。リッチエディットコントロールで作成されたRTFストリーム(アプリケーションでエディターとして使用するものと仮定しています)を取得し、独自のフォーマットを使用してバイナリストリームでシリアル化するコードを作成する必要があります。

私は個人的に努力、これは価値が考えていない

...私の文書のファイル名拡張子は何

あなたは現在.rtfファイル名の拡張子をRTF形式でドキュメントを保存しています。他のアプリケーションはそのファイル拡張子に関連付けられているため、エクスプローラでこのようなファイルをダブルクリックすると、そのファイルの代わりにそのアプリケーションが開きます。

Windowsエクスプローラでファイルをダブルクリックしてアプリケーションを開くには、使用しているファイル名の拡張子を変更し、その拡張子に適切な関連付けを作成する必要があります。

ファイル拡張子の関連付けは、レジストリ内のエントリによって定義されます。これらのマシン(HKLM \ Software \ Classes)またはユーザー(HKCU \ Software \ Classes)を作成できますが、マシンごとが最も一般的です。MSDNのドキュメントとサンプルへの実際のレジストリエントリとリンクの詳細については、SO question on Vista document icon associationsへの私の答えを確認してください。

9

展開ポイントとして、ClickOnceはファイル拡張子をサポートしていることに注意してください(「オンラインのみ」モードでない限り)。これにより、新しいファイル拡張子を認識するようにシステムを構成することができます。

これは、VS2008のプロジェクトのプロパティ - >パブリッシュ - >オプション - >ファイルの関連付けで見つけることができます。 VS2008をお持ちでない場合は、do it manuallyでも可能ですが、楽しいことではありません。

関連する問題