我需要删除目录中的所有文件和文件夹,但我需要.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();
}
}
答案 0 :(得分:0)
需要修改条件如下。这里break
将停止循环,因为continue
将仅跳过当前删除(即文件夹为.svn)
if(fileToDelete.getName()!=null && fileToDelete.getName().equals(".svn")){
// Do Nothing
continue;
}
答案 1 :(得分:0)
您可以使用pFile.isHidden()来检查它是否是隐藏文件。 此外,您可以使用File.listFiles()而不是File.list()列出文件夹中的所有文件,因此您无需创建新文件。
答案 2 :(得分:0)
其他建议应解决您的问题,否则您需要删除目录中的所有文件和文件夹。因此,您可能正在删除其中包含.svn的所有子文件夹,因此您不会看到它们保留。