2 zengyang105 zengyang105 于 2015.07.19 15:12 提问

java怎么删除目录,如果目录下有文件,一并删除,我写的递归好像不行

public static void deleteDir(String dirPath){
File file = new File(dirPath);
if (file.isDirectory()) {
String[] files = file.list();
for (String f : files) {
deleteDir(f);
}
}
else {
if(file.isFile())
file.delete();
}

}

5个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.19 15:28
已采纳
 if (file.isDirectory()) {
String[] files = file.list();
for (String f : files) {
deleteDir(f);
}
file.delete();//删除文件夹下的文件后,是空目录,删除空目录
danielinbiti
danielinbiti 回复Tao-yangZeng: public static void deleteDir(String dirPath){ File file = new File(dirPath); if (file.isDirectory()) { String[] files = file.list(); String fileAbsoutPath = file.getAbsolutePath();//需要取绝对路径,或者用File[] files = file.listFiles(); for (String f : files) { deleteDir(fileAbsoutPath+File.separator+ f); } file.delete(); } else { if(file.isFile()) file.delete(); } }
2 年多之前 回复
zengyang105
zengyang105 你能 跟我讲详细点吗 我自己还是搞不明白
2 年多之前 回复
danielinbiti
danielinbiti 回复Tao-yangZeng: 就我写的这个位置,for循环后
2 年多之前 回复
zengyang105
zengyang105 在循环里面 判断吗
2 年多之前 回复
zengyang105
zengyang105 怎么 删
2 年多之前 回复
CSDNXIAOD
CSDNXIAOD   2015.07.19 15:15

JAVA 递归和非递归删除目录及文件
Java递归删除目录文件
java递归删除目录和生成文件
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

oyljerry
oyljerry   Ds   Rxr 2015.07.19 15:28

想看看你删除返回的错误码等,是不是路径拼接不对。或其他错误类型。

zengyang105
zengyang105 它也没有报错 只是 文件夹和文件都删不了
2 年多之前 回复
tongyi55555
tongyi55555   2015.07.19 18:08

你的文件删除了,但是目录没有删除的问题。

qq545701581
qq545701581   2015.07.20 16:24

你的递归的最终作用是删除目录下的文件。不起作用是因为在递归函数里面的路劲没写全,deleteDir(f);应该改为deleteDir(dirPath+"\"+f);

Csdn user default icon
上传中...
上传图片
插入图片