怎样删除一个文件夹下的所有文件及这个文件夹?

永远的326 2008-10-13 12:37:12
比如有"d:/mywork/"文件夹,里面有几个文件,如果想删除mywork文件夹及文件夹内的所有文件,怎么做呢?
...全文
379 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜vs寐 2012-01-06
  • 打赏
  • 举报
回复
/**
*
* @function 删除文件和文件夹
* @param file
* @author 王仁辉
* @Create Date 2012-1-6
* @Modified By
* @Modified Date
* @why & what
*/
private void deleteFile(File file) {
if (file.exists()) {
if (file.isDirectory()) {
for (File f : file.listFiles()) {
deleteFile(f);
}
file.delete();
} else {
file.delete();
file = null;
}
}
}
chen_chirs 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 pauliuyou 的回复:]
先递归处理子目录和文件,再处理主目录
[/Quote]
Ding...
junjun1984 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 whlusha720 的回复:]
选中mywork文件夹 Shift+Delete
[/Quote]
.........
dynastytan 2008-10-15
  • 打赏
  • 举报
回复
判断是否为文件夹,然后直接删除文件夹就OK
getter 2008-10-15
  • 打赏
  • 举报
回复
可以不遞歸的就不要遞歸吧
cuijie_cn 2008-10-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 qusic 的回复:]
public class Test
{
public static void main(String[] args)
{
File f = new File("d:/mywork");
Test t = new Test();
t.del(f);

}
public void del(File f)
{
if(f.exists())
{
if(f.isDirectory())
{
del(f);

}
f.delete();

}
}
}

同意六楼的,改了一点
[/Quote]
aoliwen521 2008-10-14
  • 打赏
  • 举报
回复
我认为改成这样比较合适


package test;
import java.io.*;
public class testdel
{
public testdel(String str) {
File f=new File(str);
del(f);
}
private void del(File file)
{
if(file.exists())
{
if(file.isFile())
{
file.delete();
}
else
{

String[] s=file.list();
if(s==null)
{file.delete();}
else{
for(int i=0;i<s.length;i++)
{
File f=new File(file.getAbsolutePath()+File.separator+s[i]);
this.del(f);
}
file.delete();
}
}
}
}
public static void main(String[] args) {
new testdel("D:\\temp");
}
}


这个程序真不能轻易用,破坏力太强。
aoliwen521 2008-10-14
  • 打赏
  • 举报
回复
对不起,我看不懂6楼和支持6楼的,希望高手指点。
if(f.isDirectory())
{
del(f);

}
这段代码,不是反复判断的还是f吗?岂不是死循环?
whlusha720 2008-10-13
  • 打赏
  • 举报
回复
选中mywork文件夹 Shift+Delete
hanbb 2008-10-13
  • 打赏
  • 举报
回复
递归
遍历删除
sweetBug 2008-10-13
  • 打赏
  • 举报
回复
递归.
kukufly 2008-10-13
  • 打赏
  • 举报
回复
楼主 你的问题太笼统了!
qusic 2008-10-13
  • 打赏
  • 举报
回复
public class Test
{
public static void main(String[] args)
{
File f = new File("d:/mywork");
Test t = new Test();
t.del(f);

}
public void del(File f)
{
if(f.exists())
{
if(f.isDirectory())
{
del(f);

}
f.delete();

}
}
}

同意六楼的,改了一点
sinsuo 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hy0231 的回复:]
public class Test
{
public static void main(String[] args)
{
File f = new File("d:/mywork");
Test t = new Test();
t.del(f);
f.delete();
}
public void del(File f)
{
if(f.exists())
{
if(f.isDirectory())
{
del(f);
}
else
{
f.delete();
}
}
}
}
[/Quote]

赞同
马老虎 2008-10-13
  • 打赏
  • 举报
回复
右键->删除
wangzi6hao 2008-10-13
  • 打赏
  • 举报
回复
rd /S mywork
pauliuyou 2008-10-13
  • 打赏
  • 举报
回复
先递归处理子目录和文件,再处理主目录
baobao28 2008-10-13
  • 打赏
  • 举报
回复
public class test2 {
public test2() {
File ff=new File("D:\\temp");
String files[]=ff.list();

for (int i=0;i<files.length;i++)
{
String nf="d:\\temp\\"+files[i];
File f2=new File(nf);
f2.delete();
}

System.out.println("over");
}
public static void main(String[] args) {
test2 test21 = new test2();
}

}
aoliwen521 2008-10-13
  • 打赏
  • 举报
回复
10楼的format d: 更猛。
ZXEOC 2008-10-13
  • 打赏
  • 举报
回复
format d:
加载更多回复(5)

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧