删除Java中的空文件夹,处理隐藏文件
我正在尝试删除java中的空文件夹,以下是我的代码:删除Java中的空文件夹,处理隐藏文件,java,file,directorystream,Java,File,Directorystream,我正在尝试删除java中的空文件夹,以下是我的代码: try (DirectoryStream<Path> stream = Files.newDirectoryStream(path)) { for (Path file : stream) { if (file.toFile().isFile()) { System.out.println("Path is File"); S
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");
}
try(DirectoryStream=Files.newDirectoryStream(path)){
用于(路径文件:流){
if(file.toFile().isFile()){
System.out.println(“路径是文件”);
System.out.println(“文件名:“+file.toString());
if(file.toString()包含(“DS_存储”)){
文件。删除(文件);
System.out.println(“删除了DS_存储文件”);
}
}
if(file.toFile().isDirectory()){
如果(file.toFile().list().length>0){
System.out.println(“文件夹不为空”);
System.out.println(“文件长度:“+File.toFile().list().length”);
}否则{
removeEmptyFolder(文件);
文件。删除(文件);
System.out.println(“删除空文件夹”);
}
}
}
}捕获(IOEX异常){
Logger.getLogger(jpegData.class.getName()).log(Level.SEVERE,null,ex);
System.err.println(“removeEmptyFolder中的IOException”);
}
它实际上不起作用,我怀疑隐藏文件是原因。我正在检查“DS_商店”文件,但它似乎真的不起作用。有什么建议吗?这段代码也可能更短
编辑:
忘了提到代码的结果。控制台将打印“DS_Store file deleted”,但它可能会自动重新创建,或者文件。delete(文件)不起作用。此外,它只能在三个DS_存储文件中找到。不会出现任何错误,也不会删除任何文件夹。它是如何工作的?你期望它能做什么,它能做什么?异常的堆栈跟踪是什么,如果有的话?对不起,可能应该添加这个。它会找到三个ds_存储中的第一个,并打印出它已被删除,但文件仍然存在。没有一个空文件夹(包含ds_存储)被删除。我没有错误。