Может ли кто-нибудь помочь мне в этом сценарии?Java: проверка наличия файла
У меня есть метод, который при запуске генерирует несколько файлов. Файлы могут занимать от пары секунд до минуты, чтобы сгенерировать их, а не просто ждать 2 минуты каждый раз, когда я пытаюсь посмотреть количество файлов в папке, а затем проверять каждую секунду до 2 минут для количества файлов подняться.
Если количество файлов не увеличивается за последние 2 минуты, я просто хочу продолжить работу с остальной частью метода вместо того, чтобы бросать исключение и выходить из него.
Проблема в том, что при первом запуске, когда он добирается до new File(generatedFilesFolder).listFiles().length;
, он выдает исключение нулевого указателя, потому что сгенерированныйFilesFolder пуст в этой точке.
Я мог бы выполнить эту проверку после 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()' –
'Файл f = новый файл (generatedFilesFolder);' then' currentFilesGenerated = (f.exists() == false) - 1: f.listFiles(). Length' –