2012-01-17 3 views
2

У меня есть код, который переименовывает файл, а затем сразу же пытается его открыть.Открытие файла после переименования Перемещает FileNotFoundException

В Windows XP это иногда (но редко) вызывает исключение FileNotFoundException.

Возвращаемое значение из renameTo является истинным.

Это известная проблема? Возможно, может произойти задержка в файловой системе после успешного переименования, прежде чем файл появится на самом деле?

Благодаря

+4

Какова целевая файловая система (FAT, NTFS, SMB/CIFS и т. Д.)? – NPE

+0

Когда вы проверяете фактический файл в своих каталогах, изменилось ли его имя? – Alex

+0

Я не знаю файл, так как это клиентская машина установленного продукта, и все, что у меня есть, это файл журнала. – awinbra

ответ

0

У меня такая же проблема, на Linux, перемещение файлов в файловой системе CIFS. У эквивалентного метода Files.move(java.io.File, java.io.File) из библиотеки Google Guava, похоже, нет этой проблемы. Что делает Guava лучше, так это то, что он явно копирует файл из источника в байты назначения байтом, если renameTo() не возвращает true. Когда я начал писать этот ответ, я не знал, что Guava делегирован File.renameTo(), но все же: никаких проблем с Guava нет.

Смежные вопросы