0

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) が機能していません。さらに、3 つの DS_Store ファイルからのみ検出されます。エラーは表示されず、フォルダーは削除されません。

4

0 に答える 0