private static void deleteFile(File file) {
if (!file.exists()) {
System.out.println("路径不存在");
return;
}
if (!file.isDirectory()) {
System.out.println("不是目录");
return;
}
File[] listFiles = file.listFiles();
for (File f : listFiles) {
if (f.isFile()) {
f.delete();
} else if (f.isDirectory()) {
deleteFile(f);
}
}
file.delete();
}
0o
练习2:
使用File类的renameTo 方法和递归实现非空目录的剪切.
public static void main(String[] args) throws IOException {
File src = new File("c:\\abc");
File dest = new File("d:\\");
cutFile(src, dest);
}
private static void cutFile(File srcDir, File dest) throws IOException {
if (!srcDir.exists() || !dest.exists()) {
System.out.println("指定的源目录或者目标目录不存在");
return;
}
if (!srcDir.isDirectory() || !dest.isDirectory()) {
System.out.println("指定的源目录或者目标目录不是目录");
return;
}
String srcDirName = srcDir.getName();
File destDir = new File(dest + srcDirName);
destDir.mkdir();
File[] listFiles = srcDir.listFiles();
for (File f : listFiles) {
if (f.isFile()) {
f.renameTo(new File(destDir, f.getName()));
} else if (f.isDirectory()) {
cutFile(f, new File(destDir, File.separator));
}
}
srcDir.delete();
}