怎么用JAVA删除一个给定的目录,并包括次目录下的文件。 首先 根据文件路径构造一个File类 然后 根据类的属性判断是否为文件夹假如是的话 得到子文件列表 然后 判断子文件是否为文件 假如是文件的话直接执行删除file.delect()就可以;应该有一个嵌套 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个完整的删除方法public void deleteFolder(File dir) { File filelist[]=dir.listFiles(); int listlen=filelist.length; for(int i=0;i<listlen;i++) { if(filelist[i].isDirectory()) { deleteFolder(filelist[i]); } else { filelist[i].delete(); } } dir.delete();//删除当前目录} btw:别告诉我你不知道如何定义一个File变量 File path = new File("C:"); //定义目录路径,路径可以这么写:"c:\\alpha\\test" 看看我的方法: /* * 删除一个目录下的所有文件 */ public static void delAllFile(String path) { File file = new File(path); if(!file.exists()) return; if(!file.isDirectory()) return; String[] tempList = file.list(); File temp = null; for(int i = 0; i < tempList.length; i++) { if(path.endsWith(File.separator)) temp = new File(path + tempList[i]); else temp = new File(path + File.separator + tempList[i]); if(temp.isFile()) temp.delete(); if(temp.isDirectory()) delAllFile(path + tempList[i]); } } 用递归...public void deleteTree(File path){ File[] files = path.listFiles(); for(int i=0;i<files.length;i++){ File child = files[i]; if (child.isDirectory()){ deleteTree(child); } child.deleteFile(); }} alphazhao 的方法示意正确,但不够健壮 如果delteTree()传递进来的参数是文件而不是目录,那么 listFile()就会得到 NullPointerException错误。lazio_qiu 与alphazhao的方法一样,但是不够完善。 除了listFile()可能会得到 NullPointerException错误,之外,应该加上 path.delete().否则没有删除这个目录本身。 还有, File类没有deleteFile()方法,我想这是误写了。cxj_2000的方法考虑到容错,很好。但是为什么要使用String 作为delAllFile()的参数类型呢?这样在调用之前还要得到文件名字,挺麻烦的。使用 File作为参数类型,调用的时候简单的写 deleteAll(new File("c:\\abc")); 就行了。以下是我的方法,站在巨人的肩膀上写的public void deleteAll(File path){ if(!path.exists()) return; if(path.isFile()){ path.delete(); return; } File[] files = path.listFiles(); for(int i=0;i<files.length;i++){ deleteAll(files[i]); } path.delete();} 看程序 + 完善…… 下面这个代码我看不懂,帮忙解释一下吧?运行结果是什么?程序有错误的话帮忙改改。 getLocation()带参数的问题 关于生成一个六位数的问题! 提问:一个关于运行HelloWorld.java的问题 请问java中的构造器如何理解? 关于java swing内存的问题! 劳驾各位大侠帮我搞定时不时弹出的窗口 100分求侯捷翻译的Thinking In Java jav反编译程序在哪儿有下载? 在局域网内通过浏览器向服务器发送文件, 什么方法最快?? 请求援助!!!如何在JTable加载图片???
public void deleteFolder(File dir) {
File filelist[]=dir.listFiles();
int listlen=filelist.length;
for(int i=0;i<listlen;i++) {
if(filelist[i].isDirectory()) {
deleteFolder(filelist[i]);
}
else {
filelist[i].delete();
}
}
dir.delete();//删除当前目录
}
File path = new File("C:");
//定义目录路径,路径可以这么写:"c:\\alpha\\test"
/*
* 删除一个目录下的所有文件
*/
public static void delAllFile(String path) {
File file = new File(path);
if(!file.exists()) return;
if(!file.isDirectory()) return;
String[] tempList = file.list();
File temp = null;
for(int i = 0; i < tempList.length; i++) {
if(path.endsWith(File.separator))
temp = new File(path + tempList[i]);
else
temp = new File(path + File.separator + tempList[i]);
if(temp.isFile()) temp.delete();
if(temp.isDirectory()) delAllFile(path + tempList[i]);
}
}
public void deleteTree(File path){
File[] files = path.listFiles();
for(int i=0;i<files.length;i++){
File child = files[i];
if (child.isDirectory()){
deleteTree(child);
}
child.deleteFile();
}
}
如果delteTree()传递进来的参数是文件而不是目录,那么 listFile()就会得到 NullPointerException错误。lazio_qiu 与alphazhao的方法一样,但是不够完善。
除了listFile()可能会得到 NullPointerException错误,之外,应该加上 path.delete().否则没有删除这个目录本身。
还有, File类没有deleteFile()方法,我想这是误写了。cxj_2000的方法考虑到容错,很好。但是为什么要使用String 作为delAllFile()的参数类型呢?这样在调用之前还要得到文件名字,挺麻烦的。使用 File作为参数类型,调用的时候简单的写 deleteAll(new File("c:\\abc")); 就行了。以下是我的方法,站在巨人的肩膀上写的public void deleteAll(File path){
if(!path.exists()) return;
if(path.isFile()){
path.delete();
return;
}
File[] files = path.listFiles();
for(int i=0;i<files.length;i++){
deleteAll(files[i]);
}
path.delete();
}