我想删除java中的空文件夹,这里是我的代码:
try (DirectoryStream 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(文件)不起作用。此外,它仅在三个DS_Store文件中找到。没有给出错误,没有文件夹被删除。