0

フォルダーにファイルを書き込むアプリケーションがあり、アプリケーションの別のインスタンスが同じディレクトリに書き込もうとした場合に防止 (または少なくとも警告を表示) したいと考えています。

これを防ぐためにフォルダへのアクセスを一時的にブロックする方法はありますか?

編集:

一時ファイルを作成してフラグとして使用することを考えていましたが、アプリケーションがクラッシュした場合に一時ファイルを確実に削除する方法はありますか?

4

1 に答える 1

3

なぜロックファイルを使わないのですか?

「チェックと作成」操作がアトミックであることを確認する必要があります。ロックファイルが既に存在することが通知された場合は、別のプロセスがディレクトリにアクセスしています。

他のプロセスのためにディレクトリ全体をブロックすることは、あなたが望むものではありません。また、シェルとファイル ブラウザがアクセスするのをブロックします。


私はあなたの編集を見ました: ファイルのプロセス ID をロックファイルに書き込むことができます。アプリケーションが既存のロック ファイルを検出すると、その ID を持つプロセスが存在するかどうかを確認できます。そうでない場合は、ロックファイルを削除して最初からやり直してください。

于 2012-07-10T13:15:51.890 に答える