重复检查,是否存在文件

时间:2013-05-06 16:47:25

标签: java file nio2

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

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

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

E.G。

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

是否可以用Java创建它?如果是,怎么样?

2 个答案:

答案 0 :(得分:1)

也许有更好的方法:

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

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

答案 1 :(得分:0)

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

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

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

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


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

这本身很少有用。

通常,组合文件类型和权限检查会识别出比测试存在更糟糕的状态。

file.isFile() && file.canRead()