質問

データベースにファイルの内容を保存するwinformsアプリがあります。保存されるファイルは、ユーザーがロードするファイルの種類を選択できるほぼすべての種類(単語、Excel、PDF、テキスト、画像など)になります。

ユーザーはデータベースにクエリを実行し、ファイルを見つけて開くことができます。

データベースからバイト配列をストリームまたはバイト配列として抽出しても問題ありません。

理想的には、バイト配列またはストリームから直接ファイルを表示できます。現時点では、一時ファイルとして保存してから、次のコマンドで開きます。

Process.Start(fileName);

バイト配列またはストリームファイルのいずれかから、関連付けられたアプリケーションでファイルを表示するにはどうすればよいですか

役に立ちましたか?

解決

Windowsでは、あなたがしていることを正確に行うことが唯一の選択肢です。 Outlook、Internet Explorer、firefox、すべてこれを行う

他のヒント

メモリマップドファイルについて少し調査したい場合があります。

それを含むディレクトリを開くことはできますが、現在実行しているものと同じになります。関連するアプリがOSによって認識されている場合、問題はありません。

バイトストリームとともにDBにファイル名を保存すると、拡張子からファイルタイプを判別できます。この場合、2つのオプションがあります:

  1. レジストリを使用して、使用するアプリケーションを決定します。詳細については、 bytesでこの会話をご覧ください。 .com
  2. P / Invoke SHGetFileInfo へ使用するアプリケーションを決定します。

NB:両方のオプションを使用して、ファイルデータをロードするには、ディスク上の一時ファイルに書き込む必要があります。

個人的には、とにかく、あなたがしていることはおそらく最も簡単なオプションだと思います(特定のファイルタイプなどにカスタムビューアーを提供したくない場合)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top