私は構築しているデータベースアプリケーションで参照されているファイルの同期情報を格納するために代替データストリームを使用できます。Working C#例:Win7でのNTFS代替データストリームの書き込みと読み込み64ビット
しかし、私がウェブ上で見つけたすべてのアプローチは、いずれかの方法で失敗しました。 Win32 APIプログラミングで経験はありませんが、私はなぜ失敗が起こっているのか分かりません。場合によっては、メソッド呼び出しが成功したように見えます。代替ストリームが作成されない(つまり、後で代替ファイルから読み込むことも、AlternateStreamViewerがそれを見ることもできません)。それ以外の場合は書き込みは成功しますが、CreateFile()を呼び出すとSafeFileHandleが無効になるため、読み込みに失敗します。
この時点で、私はいくつかの作業コードを見つけたいと思います。または、「ここからここには行くことができません」と伝えてください。この場合、別の魅力的ではないオプションを使用します(たとえば、ファイル名自体に同期/参照情報をエンコードし、誰もファイル名を変更しないことを願っています)。
私はどのアプローチを試みたのかを理解しています。しかし、かなりの数(私はこれに数時間を費やしました)がありました。私は本当に試していない製品について学ぶことに興味がありました。
しかし、それは私がアプローチの1つ、つまり以下に言及したTrinetの1つを間違って使用していたことが判明したのではないでしょうか。問題は、代替ストリームを保存しようとしていた「ベース」ファイルをまだ作成していなかったことだと思います。私はこのライブラリを使用してWindows 7のx64上で成功を収めてきた
http://stackoverflow.com/q/604960/102937 –
あなたがしようとしたアプローチのいくつかにあなたの質問へのリンクに記載してください、そしてなぜ彼らは失敗しました。さもなければ、私達はあなたに同じ失敗したアプローチを紹介するつもりです。 –