簡體   English   中英

使用Java刪除目錄中除隱藏文件以外的所有文件和文件夾

[英]Deleting all files and folders in directory except hidden files using java

我需要刪除目錄中的所有文件和文件夾,但是我需要在此刪除.svn文件夾,以便每次可以提交和刪除該文件夾。 我的以下代碼有效,但它僅保留.svn父文件夾,但刪除了其子.svn文件夾的其余部分

我的代碼:

      if (pFile.exists() ) {
        System.out.println(pFile.getName());
        if (pFile.isDirectory()) {
            if (pFile.list().length == 0) {
                 System.out.println("0>"+pFile.getName());
                pFile.delete();
            } else {
                System.out.println("1>"+pFile.getName());
                String[] strFiles = pFile.list();

                for (String strFilename : strFiles) {
                    File fileToDelete = new File(pFile, strFilename);
                    System.out.println("2>"+fileToDelete.getName());
                    if(fileToDelete.getName()==".svn")
                    {
                        // Do Nothing
                        break;
                    }
                    else
                    {
                    delete(fileToDelete);
                    }
                }
            }
        } else {
             System.out.println("3>"+pFile.getName());
           pFile.delete();
        }
    }

需要如下修改條件。 在這里break將停止循環, continue將僅跳過當前的刪除操作(即,文件夾為.svn)

 if(fileToDelete.getName()!=null && fileToDelete.getName().equals(".svn")){
     // Do Nothing
     continue;
}

您可以使用pFile.isHidden()來檢查它是否為隱藏文件。 另外,您可以使用File.listFiles()而不是File.list()列出文件夾中的所有文件,因此您不必創建新文件。

其他建議應該可以解決您的問題,否則,您需要刪除目錄中的所有文件和文件夾。 因此,可能是您正在刪除其中包含.svn的所有子文件夾,因此看不到它們保留。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM