黑马程序员技术交流社区
标题:
如果文件夹test中有多层目录,这么做怎么删不了呢?
[打印本页]
作者:
陈延真
时间:
2013-5-28 20:54
标题:
如果文件夹test中有多层目录,这么做怎么删不了呢?
本帖最后由 陈延真 于 2013-5-30 21:27 编辑
import java.io.File;
/*
* 递归删除文件
*/
public class DeleteFileDemo {
public static void main(String[] args) {
File file = new File("test");
deleteFilePath(file);
}
public static void deleteFilePath(File file) {
File[] fileArray = file.listFiles();
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFilePath(f);
} else {
if (f.getName().endsWith(".txt")) {
System.out.println(f.getName());
f.delete();
}
}
}
}
}
作者:
HM刘博
时间:
2013-5-28 21:19
本帖最后由 HM刘博 于 2013-5-28 21:27 编辑
这个代码是正确的,没问题
估计你的意思是删除不了文件夹吧
在代码上加一句就好了
import java.io.File;
/*
* 递归删除文件
*/
public class DeletFile {
public static void main(String[] args) {
File file = new File("test");
deleteFilePath(file);
}
public static void deleteFilePath(File file) {
File[] fileArray = file.listFiles();
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFilePath(f);
} else {
if (f.getName().endsWith(".txt")) {
System.out.println(f.getName());
f.delete();
}
}
}
System.out.println(file.getName()+"***"+file.delete());//这一句是删除文件夹
}
}
复制代码
因为前边增强for循环遍历的是test文件夹中所有的.txt文件并删除
并没有删除文件夹,因此在遍历完后再用file.delete()删除文件夹
作者:
陈潜
时间:
2013-5-28 21:52
楼主你的代码只是删除了文件夹下的所有txt文件,如果有别的文件的话,就无法删除文件夹,
还有 最后你忘记了 file.delete()
import java.io.File;
/*
* 递归删除文件
*/
public class Demo {
public static void main(String[] args) {
File file = new File("test");
deleteFilePath(file);
}
public static void deleteFilePath(File file) {
File[] fileArray = file.listFiles();
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFilePath(f);
} else {
if (f.getName().endsWith(".txt")) {
System.out.println(f.getName());
f.delete();
}
// f.delete(); //你这里指删除了TXT文件 如果里面还有别的文件就删除不了文件夹
}
}
file.delete(); //最后要删除整个文件夹的话,你忘了这一句
}
}
复制代码
作者:
袁梦希
时间:
2013-5-30 10:49
楼主你好,如果帖子没问题了,那么请把帖子的类型改为“已解决”。如果不会改,请看我的个性签名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2