黑马程序员技术交流社区
标题:
删除一个带内容的文件夹
[打印本页]
作者:
王春蕾
时间:
2014-5-21 08:47
标题:
删除一个带内容的文件夹
带内容的文件夹可以分两种,一种是文件夹下都是文件的,只需要使用递归遍历文件夹下的文件,先将文件删除最后将文件夹删除即可;另一种是文件夹下既有文件也有文件夹的,请问这种情况应该怎么删除呢?
以下代码为删除一个文件夹下都是文件的文件夹:
File f = new File(path);
// System.out.println(f.list().length);
if (f.isDirectory() && f.list().length > 0) {
File[] files = f.listFiles();
for (File file : files) {
if (file.isDirectory()) {
/*
* if (file.list().length == 0) file.delete();
*/
deleteDir(file.getPath());
} else if (file.isFile()) {
file.delete();
}
}
}
f.delete();
复制代码
作者:
周俊波
时间:
2014-5-21 11:37
本帖最后由 周俊波 于 2014-5-21 11:45 编辑
你的代码好像没有贴全吧,我没看明白你的递归思想,你可以参考一下我写的这个,其实递归就是自己调用自己,你把要做的一整个事情,分开来看,就这个删除来说,你先不要想着怎么一下全部删除,然后把自己的思想带入,把能想到的可能都考虑到就出来了。
public boolean deleteDir(String url) {
File f = new File(url);
File[] files;
if(f.isDirectory()) {//判断是否为文件夹
files = f.listFiles();
if(files.length == 0) { //如果文件夹为空,则直接删除
f.delete();
}else {
for(int i=0;i<files.length;i++) {//不为空遍历
File ff = files[i];
deleteDir(ff.getPath());
}
f.delete();//遍历删除完文件后,记得删除文件夹
System.out.println("删除文件夹成功++++++" + f.getPath());
}
} else {//不是文件夹直接删除文件
f.delete();
System.out.println("删除文件成功" + url);
}
return true;
}
复制代码
作者:
艮昕辶
时间:
2014-5-21 14:04
import java.io.*;
class Demo
{
public static void deleteFile(String filePathName){
File file=new File(filePathName);
if(file.isDirectory()){
File[]files=file.listFiles();
for(File fileit:files){
deleteFile(fileit.getPath());
}
System.out.println("delete dir..."+file.getPath()+"...delete..."+file.delete());
}
else{
System.out.println(file.getPath()+"...delete..."+file.delete());
}
}
public static void main(String[] args)
{
String filePathName="c:\\genxinzou";
deleteFile(filePathName);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2