あなたはほとんどそれをすることができます(つまり、あなたはできませんが、あなたは近い何かをすることができます)。
でファイルを作成すると、原則として一時的にファイルが作成されますFILE_ATTRIBUTE_TEMPORARY
。ただし、十分なバッファキャッシュがある限り(ファイルが数十から数百メガバイトでない限り、通常は常にそうです)、システムはディスクに書き込みません。これは偶然に発生するだけでなく、このフラグの実際に指定された動作です。
さらに、0
共有モードとして指定するFILE_FLAG_DELETE_ON_CLOSE
と、ファイルが開いていることを誰かが知っていても、開いたままにしている限り、他のプロセスがファイルを開くことができなくなり、ファイルを閉じるとファイルが「消えます」。アプリケーションがクラッシュした場合でも、OSは背後でクリーンアップします(DRMが理由である場合)。スーパーパラノイアモードで、ファイルが存在するときにシステムのブルースクリーンが心配な場合は、保留中の移動を追加でスケジュールすることもできます。これにより、システムがクラッシュした場合に、起動中にファイルが削除されます。
最後に、NTFSを指定すると、任意のファイルまたはディレクトリに、ランダムで、できれば一意の名前(たとえば、ドキュメントのSHA1またはUUID)を使用して代替ストリームを作成できます。ディレクトリ上の代替ストリームは...一種の厄介なハックですが、完全に合法であり、問題なく機能し、エクスプローラーには表示されません。これにより、ファイルが実際に非表示になるわけではありませんが、ほぼ表示されます(とにかく、ほとんどすべての実用的な側面で)。あなたが善良な市民であるなら、あなたはそのようなことのためにシステム一時フォルダを使いたいでしょう、あなたが書くべきではないプログラムフォルダや他の場所ではありません。
代替ストリームの作成も非常に簡単です。通常のファイル名またはディレクトリ名を使用し、コロン(:
)と必要なストリームの名前を追加するだけです。追加のAPIは必要ありません。
それ以外はちょっと大変です。もちろん、いつでもramdiskのようなものを作成することができます(ただし、非表示にするのは難しいでしょう)。または、メモリからのストリーム関数の1つを使用して、ファイルの申し立てでアプリケーションをだましてメモリバッファーから読み取るようにすることもできます。 ...しかし、それは些細なことではありません。