Обычно File.delete
должен выдавать IOException
, но он просто возвращает false.
Кхм ...
File.delete
не выдает IOException
если не удается удалить файл 1 . Он возвращает false
.
Что касается того, почему не удается удалить файл, наиболее вероятными объяснениями являются:
Файл заблокирован, потому что что-то его открыло . Windows не позволит вам удалить файл, который заблокирован.
Приложение не имеет необходимого доступа (уровня ОС) для удаления файла; т.е. это проблема с правами доступа к файлу или каталогу.
Если вы хотите выяснить, почему удаление не удается, решение состоит в том, чтобы изменить свой код, чтобы использовать Path
и Files.delete(Path)
. Методы в Files
предназначены для исключения. В этом случае в сообщении должна быть указана причина невозможности удаления.
1 - Единственное исключение, что метод задокументирован как метание, - это SecurityException
, которое будет выбрано только при наличии активного SecurityManager
.