A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈延真 于 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();
    }
   }
  }
}
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
本帖最后由 HM刘博 于 2013-5-28 21:27 编辑

这个代码是正确的,没问题

估计你的意思是删除不了文件夹吧
在代码上加一句就好了
  1. import java.io.File;

  2. /*
  3. * 递归删除文件
  4. */
  5. public class DeletFile {
  6. public static void main(String[] args) {
  7. File file = new File("test");

  8. deleteFilePath(file);
  9. }
  10. public static void deleteFilePath(File file) {

  11. File[] fileArray = file.listFiles();

  12. for (File f : fileArray) {

  13. if (f.isDirectory()) {
  14. deleteFilePath(f);
  15. } else {
  16. if (f.getName().endsWith(".txt")) {

  17. System.out.println(f.getName());
  18. f.delete();
  19. }
  20. }
  21. }
  22. System.out.println(file.getName()+"***"+file.delete());//这一句是删除文件夹
  23. }
  24. }
复制代码
因为前边增强for循环遍历的是test文件夹中所有的.txt文件并删除
并没有删除文件夹,因此在遍历完后再用file.delete()删除文件夹

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼主你的代码只是删除了文件夹下的所有txt文件,如果有别的文件的话,就无法删除文件夹,
还有 最后你忘记了 file.delete()
  1. import java.io.File;

  2. /*
  3. * 递归删除文件
  4. */
  5. public class Demo {
  6.         public static void main(String[] args) {
  7.                 File file = new File("test");
  8.                 deleteFilePath(file);
  9.         }

  10.         public static void deleteFilePath(File file) {

  11.                 File[] fileArray = file.listFiles();
  12.                 for (File f : fileArray) {
  13.                         if (f.isDirectory()) {
  14.                                 deleteFilePath(f);
  15.                         } else {
  16.                                 if (f.getName().endsWith(".txt")) {
  17.                                         System.out.println(f.getName());
  18.                                         f.delete();
  19.                                 }
  20. //                                f.delete();                //你这里指删除了TXT文件  如果里面还有别的文件就删除不了文件夹
  21.                         }
  22.                 }
  23.                 file.delete();                //最后要删除整个文件夹的话,你忘了这一句
  24.         }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
楼主你好,如果帖子没问题了,那么请把帖子的类型改为“已解决”。如果不会改,请看我的个性签名
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马