Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除Java中的空文件夹,处理隐藏文件_Java_File_Directorystream - Fatal编程技术网

删除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

我正在尝试删除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");
    }
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_存储)被删除。我没有错误。