File.listFiles () конфликтует с удалением каталога - PullRequest
0 голосов
/ 09 мая 2018

File.listFiles() ведет себя навязчиво в каталоге?Содержит ли он файлы и / или директории?Это cd в каталог?

Один из моих процессов вызывает Java File.listFiles() для каталога, а другой пытается удалить тот же каталог (например, с помощью C # Directory.Delete(DIRECTORY, true);).При удалении происходит сбой с «Каталог не пуст» (это сообщение об ошибке Windows).Я подозреваю, что File.listFiles() каким-то образом мешает, хотя он только выполняет операцию чтения.

Примечание: процесс Java рекурсивно читает каталог (если он находит подкаталоги, он их тоже читает).Таким образом, вполне возможно, что

Directory.Delete(DIRECTORY, true)

фактически конфликтует с

(new File(SUBDIRECTORY)).listFiles()

Очевидно, что читатель Java SUBDIRECTORY удерживает некоторые вид ручек на SUBDIRECTORY.Это предотвратит удаление родительского КАТАЛОГА?

1 Ответ

0 голосов
/ 17 мая 2018

Я теперь подтвердил, что File.list() (но, вероятно, также File.listFiles()) может действительно вызывать это. Смотрите мои комментарии выше, а также кровавые подробности в соответствующем сообщении об ошибке TeamCity .

...