Удаление пустых папок в Java, работа со скрытыми файлами
Я пытаюсь удалить пустые папки в Java, вот мой код:
try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) {
for (Path file : stream) {
if (file.toFile().isFile()) {
System.out.println("Path is File");
System.out.println("Filename: " + file.toString());
if(file.toString().contains("DS_Store")){
Files.delete(file);
System.out.println("DS_Store file deleted");
}
}
if (file.toFile().isDirectory()) {
if (file.toFile().list().length > 0) {
System.out.println("Folder is not empty");
System.out.println("File length: " + file.toFile().list().length);
} else {
removeEmptyFolder(file);
Files.delete(file);
System.out.println("Deleting empty folder");
}
}
}
} catch (IOException ex) {
Logger.getLogger(jpegData.class.getName()).log(Level.SEVERE, null, ex);
System.err.println("IOException in removeEmptyFolder");
}
Это на самом деле не работает, и я подозреваю, что скрытые файлы являются причиной. Я делаю проверку файлов "DS_Store", но, похоже, она не работает. Какие-нибудь советы? Этот код, вероятно, также может быть короче.
РЕДАКТИРОВАТЬ: забыл упомянуть результат кода. Консоль напечатает "Файл DS_Store удален", но он либо создается автоматически, либо Files.delete(file) не работает. Кроме того, он находит только один из трех файлов DS_Store. Ошибки не выдаются, папки не удаляются.