![](/img/trans.png)
[英]List all files recursively in a given Directory except files in hidden folders
[英]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.