2013-04-17 1 views
5

から仮想ファイルパスを作成します。私はC#&のWindows APIに関する一般的な質問があるストリーム

私の仕事は、文書管理システム(DMS)からファイルをロードし、このファイルからバイト配列を作成しています。 DMSの開発者から私は、このような方法を提供し、DLLを得た:

loadFile(int DocId, string PathToSaveFile); 

残念ながら、与えられたdllが私にバイト配列またはストリームのいずれかの種類として、要求されたファイルを提供する方法を提供していません。今私の質問は、実際にはセカンダリストレージに存在しない仮想パスのいくつかの種類を作成するC#で可能ですか?代わりに、このパスに書き込まれたすべてのビットとバイトがストリームで私に転送されますか?私の目的は、データをハードドライブに書き込む必要がないため、パフォーマンスを向上させることです。

私は既に多くの検索を行っていますが、実際に検索しなければならないキーワードは分かりません。おそらく、誰かが私にヒントを与えたり、まったく不可能であると私に教えてくれるかもしれません。

+1

WEBDAVサーバー?たとえば、http://www.webdavsystem.com/ – I4V

+0

サイドノート:「ハードドライブにデータを書き込む必要がないため、パフォーマンスを向上させる」 - あなたはメモリ/ディスク使用量を非常にうまく計画する必要があります。そうしないと、マシンの物理メモリに合理的に収まるようなデータが増え、パフォーマンスが向上するのではなく、コードがより遅く、かなり複雑になります。面白いが、書く必要はありません。 –

答えて

2

これは、ライブラリがファイルを開いてファイルを読み取る方法によって多少異なります。 CreateFileを使用している場合は、名前付きパイプ経由でアクセスできる可能性があります。名前付きパイプへのパスは、\\.\pipe\PipeNameHereを使用して指定できます。 C#ではNamedPipeServerStreamを使用できます。

しかし、クライアントアプリケーションがこれと互換性があることは比較的稀であり、実装が簡単で動作する可能性が高いRAM driveを作成することをお勧めします。 RAMドライブは通常のディスクドライブとして表示されます。ファイルを保存して読み込むことはできますが、すべてがメモリ内で行われます。

関連する問題