2012-02-16 25 views
3

java.io.Fileが現在どのプロセスによって別のプロセスで開いているかどうかをテストすることは可能ですか?私はJava 7を使用しており、ターゲットプラットフォームはLinux/Windows/Macです。ファイルがJavaで開いているかどうかをテストする方法は?

+2

[this](http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open) – DonCallisto

+0

をご覧くださいこれをする。あなたの質問のコンテキストに言及することで、あなたの全体的な問題に対するより良い解決策を得るかもしれません... – thkala

+1

- 私はすでにWatchService APIを使用しています。しかし、変更、削除、作成のためのイベントをトリガーするだけです。ファイルが開いているかどうかを確認するためにこれらを組み合わせる可能性はありません。私は現在、分散ドキュメント管理ツールを構築中です。目的は、あるユーザが現在編集中のファイルをロックすることです。同じファイルを(MySQL経由で)共有する他のユーザが同じファイルを同じ時間に編集することはできません... FileLockはプラットフォームに依存しません.... – salocinx

答えて

1

これは、さまざまなプラットフォーム間で確実に動作する簡単な方法ではありません。あなたがやろうとしていることに応じて、ほとんどのファイルシステムではほとんどの場合外見上はうまくいく一連のtry/catch文を一緒にパッチすることができますが、それを捨てなさい。

このルートを終了する場合は、疑わしいことがあるときには速く失敗し、実際にファイルが開いていないと思う状況にはなりません。私のアドバイスは、あなたがこのチェックをしなければならなくなる可能性がある方法があるかどうかを確認することです。

+0

ありがとうございます。私はこれをオプションとして考えます:-( – salocinx

関連する問題