有人可以幫我解決這個問題嗎?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