删除Java中的空文件夹,处理隐藏文件

时间:2015-02-28 14:06:52

标签: 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");
                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");
    }

它没有真正起作用,我怀疑隐藏文件是原因。我正在检查&#34; DS_Store&#34;文件,但它似乎并没有真正起作用。有小费吗?这段代码也可能更短。

编辑: 忘了提到代码的结果。控制台将打印&#34; DS_Store文件已删除&#34;,但它会自动重新创建,或者Files.delete(文件)不起作用。此外,它只能在三个DS_Store文件中找到。没有给出错误,没有删除任何文件夹。

0 个答案:

没有答案