-3

ファイルが存在するかどうかを確認したい場合は、次を使用します。

File file = new File("name of File");
if(file.exists()) { //do something}

しかし、インストールのチェックとして使用したい場合: ファイルは、たとえば 5 分または 10 分後に作成できます: ファイルがfile.exists()存在するかどうかをどのように制御できますか?

例えば

  • インストールが開始されましたが、ファイルが存在しません
  • インストールを続行 5 分 ファイルがまだ存在しない
  • 10分後-ファイルが作成されました-たとえばInstallation.chk(ファイルはすでに存在します)、ifステートメントはtrueになりました

Javaで作成することは可能ですか?はいの場合、どのように?

4

2 に答える 2

1

たぶんもっと良い方法があります:

http://docs.oracle.com/javase/tutorial/essential/io/notification.html

exists() をループする代わりに、何かが変更された場合に OS に通知させます。

于 2013-05-06T16:55:19.337 に答える
0

ファイルシステムを扱うときは、競合状態が発生することを受け入れ、それらを計画する必要があります。

ファイルが現在存在するかどうかのみを確認できます。ディスクがマウント/イジェクトされる可能性があるため、ファイルが引き続き存在するかどうかは確認できません。スーパーユーザー アカウントはファイルを削除したり、リンクを解除したり、親ディレクトリを読み取り不能にしたりできます。

java.ioファイルロックもサポートしていません。

何かがインストールされていることを確認する必要がある場合は、最善を尽くすことができますが、実行中にユーザーが別のソフトウェアをアンインストールするのを防ぐことはできません。


if(file.exists()) { /*do something*/}

これ自体が役立つことはめったにありません。

多くの場合、ファイルの種類とアクセス許可のチェックを組み合わせることで、単に存在をテストするだけでなく、より悪い状態を特定できます。

file.isFile() && file.canRead()
于 2013-05-06T16:50:38.047 に答える