有人可以帮我解决这个问题吗?Java:检查文件是否存在
我有一个方法,当运行时生成一些文件。这些文件可能需要几秒钟到几分钟的时间才能生成,所以每次我尝试查看文件夹中的文件数量时,不要等待2分钟,然后每秒钟检查最多2分钟的文件数量上去。
如果在那2分钟内文件数量没有增加,我只想继续使用方法的其余部分,而不是抛出异常并退出。
问题是它第一次运行时,它得到new File(generatedFilesFolder).listFiles().length;
它抛出一个空指针异常,因为这时generatedFilesFolder是空的。
我可以在generate.next()之后做这个检查,但是接下来我将不得不睡眠,这会打败我想要存档的内容。
请谁能告诉我一个更好的方法?我尝试将int更改为Integer,但仍然抛出异常。
int actualFilesGenerated = new File(generatedFilesFolder).listFiles().length;
generate.next();
///Now I want to give each file 2 minutes to generate otherwise catch and
// carry on with rest of method.
try {
int currentFilesGenerated = new File(generatedFilesFolder).listFiles().length;
int counter = 0;
while ((currentFilesGenerated < actualFilesGenerated) & counter < 120) {
Thread.sleep(1000);
currentFilesGenerated = new File(generatedFilesFolder).listFiles().length;
counter++;
System.out.println("actualFilesGenerated: " + actualFilesGenerated
+ " currentFilesGenerated: " + currentFilesGenerated + "counter: "
+ counter);
}
} catch (InterruptedException e1) {
e1.printStackTrace();
}
///rest of method here
用'File.exists()'方法检查文件 – 2013-07-11 10:01:22
'File f = new File(generatedFilesFolder);'then'currentFilesGenerated =(f.exists()== false) - 1:f.listFiles()。length' – 2013-07-11 10:03:30