怎么用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();} 一个简单的封装二元一次方程问题 JAVA 数组问题 package与import语句 能共存吗 如何把HashMap内容输出到文本文件? 一段简单的代码,为何不能在Eclipse中运行? 一个关于邮件附件格式的问题,请进来看看! jbuilder6中如何将文件做成可执行文件? 怎样清空缓冲区? scjp一道题! 怎么覆写hashcode和equals比较好? 在局域网内通过浏览器向服务器发送文件, 什么方法最快?? 请求援助!!!如何在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();
}