-3

如果我想检查文件是否存在,我将使用:

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

但是我该怎么办,如果我想用它来检查安装:文件可以在 5 或 10 分钟后创建:那么如何file.exists()控制文件是否存在?

例如

  • 安装开始,文件不存在
  • 安装继续 5 分钟文件仍然不存在
  • 10 分钟后 - 创建文件 - 例如Installation.chk(文件已存在)我的 if 语句现在为真

是否可以在 Java 中创建它?如果是,如何?

4

2 回答 2

1

也许有更好的方法:

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

如果有什么变化,让操作系统告诉你,而不是循环你的 exists()。

于 2013-05-06T16:55:19.337 回答
0

在处理文件系统时,您必须接受竞争条件的发生并为它们做好计划。

您只能检查文件现在是否存在,而不能检查它是否会继续存在,因为可以挂载/弹出磁盘,超级用户帐户可以删除文件或取消链接或使父目录不可读。

java.io也不支持文件锁定。

如果您需要检查是否安装了某些软件,您可以尽最大努力,但您无法阻止用户在您的软件运行时卸载其他软件。


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

这本身很少有用。

通常,结合文件类型和权限检查可以识别出更多的不良状态,而不仅仅是测试存在。

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