java删除文件时总是返回false,删不掉

来源:互联网 发布:空中杀手 知乎 编辑:程序博客网 时间:2024/06/05 22:01
    public static boolean deleteFiles(File[] files){              boolean flag = false;              for(File file:files){                  // 路径为文件且不为空则进行删除                    if (file.isFile() && file.exists()) {                       flag = file.delete();                      System.out.println(flag);                  }              }              return flag;          }  
我的文件都是存在的,但是就是经常性的删不了,不知道怎么回事,我单独测试的时候是可以的,感觉很是奇怪,上网查,人家说是可能的情况有:

1、多线程操作;2打开的文件流没有关闭;3、需要垃圾回收下。

分析下我的情况,我的是单线程的,所以第一种情况不存在,第二种情况我关闭我所有打开的文件流但是还是不行,后来我在程序中加了行System.gc();,结果就真的可以了,一下是修改后的:

    public static boolean deleteFiles(File[] files){              boolean flag = false;              for(File file:files){                  // 路径为文件且不为空则进行删除                    if (file.isFile() && file.exists()) {                        System.gc();    //加上确保文件能删除,不然可能删不掉                      flag = file.delete();                      System.out.println(flag);                  }              }              return flag;          }  



0 0
原创粉丝点击