注意事项:
1)删除目录时,目录下文件必须为空,否则删除无效。
2)循环删除目录下文件时,判断条件可能发生变化(下面举例说明)
代码:
//参数file 为要删除的文件或目录
protected void delet(File file) {
if (file.isDirectory()) {
//目录下的文件数不等于0,则file.delet();方法无效
if (file.listFiles().length == 0) {
System.out.println("delet directory: "+file.getName());
file.delete();
}
for (int i = 0; i < file.listFiles().length; i++) {
//递归删除
delet(file.listFiles()[i]);
i--;
}
}
System.out.println("delet file: "+file.getName());
file.delete();
}
列表难点:
file.delet()后,file.listFiles()会减1。即for循环的遍历条件i<file.listFiiles().length,已经发生变化。