public static void main(String[] args) {
deleteDir(new File("C:/a"));
} public static void deleteDir(File dir) {
if (dir == null || !dir.exists() || !dir.isDirectory())
return; // 检查参数
File[] _listFile = dir.listFiles();
for (File file : _listFile) {
System.out.println("xx:=" + file);
if (file.isFile()) {
System.out.println("del.file");
file.delete(); // 删除所有文件
} else if (file.isDirectory()) {
System.out.println("DiGui...");
deleteDir(file); // 递规的方式删除文件夹
}
}
System.out.println("dir.delete");
System.out.println("value="+dir.delete()+".");// 删除目录本身
System.out.println("dir.delete");
}上面确实能实现删除一个目录的全部文件和目录
-----------------------------------------------------------------------------
它的逻辑是-->先循环判断路径是文件还是目录如果是文件就删除
if (file.isFile()) file.delete();
如果是目录就递归
 
可是如果目录结构是:
|-xxxFile
               |-xxDirectory
|-xxxDirectory |-xxFile
               
|-xxxFile那先判断xxxFile是文件,然后直接删除,
判断xxxDirectory是目录,然后递归
判断xxDirectory是目录,下面没有任何文件for循环结束
执行System.out.println("value="+dir.delete()+".");// 删除目录本身然后程序根本没有删除其他目录和文件啊!