纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

java删除文件返回false,删不掉 java删除文件时总是返回false,删不掉的解决方案

fangguozi   2021-09-09 我要评论
想了解java删除文件时总是返回false,删不掉的解决方案的相关内容吗fangguozi在本文为您仔细讲解java删除文件返回false,删不掉的相关知识和一些Code实例欢迎阅读和指正我们先划重点:java删除文件,返回false,文件删不掉下面大家一起来学习吧

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

今天写了个简单的文件删除的程序:代码如下:

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;
 }

java文件删除不了的坑,特别是压缩文件

我们在用java删除文件的时候通常直接调用file.delete()方法就行了但是很多情况下却删除不了

下面列举一些情况

  • 1、是文件夹且不为空这个没什么好说的可以先删除文件夹里的文件再删除这个文件夹
  • 2、被别的进程占用这不仅java不能删就算windows手动删也删不了
  • 3、跟这个文件的流没有关闭这个是最常见的原因了

然而我遇到的是上传一个文件然后跟这个文件有关的流也关闭了还是删除不了后来发现有人把这个文件偷偷的转换成zip压缩文件了

然后删除这个bookFile死活删除不了如果出现这种情况这个zipFile最后一定要close;

java.util.zip.ZipFile.close()方法关闭ZIP文件

关闭此ZIP文件将关闭以前由调用getInputStream()方法返回的所有输入流这个方法连流都给我们关闭了!就不用我们手动关闭zip文件的流了最后在调用file.delete()方法就可以删除文件了

以上为个人经验希望能给大家一个参考也希望大家多多支持


相关文章

猜您喜欢

  • java中TESTful架构原理 java中TESTful架构原理分析

    想了解java中TESTful架构原理分析的相关内容吗蔡晓建在本文为您仔细讲解java中TESTful架构原理的相关知识和一些Code实例欢迎阅读和指正我们先划重点:java架构,TESTful架构分析下面大家一起来学习吧..
  • OpenCV 人脸采集 超详细注释之OpenCV dlib实现人脸采集

    想了解超详细注释之OpenCV dlib实现人脸采集的相关内容吗程序媛一枚~在本文为您仔细讲解OpenCV 人脸采集的相关知识和一些Code实例欢迎阅读和指正我们先划重点:OpenCV,人脸采集,python,人脸采集下面大家一起来学习吧..

网友评论

Copyright 2020 www.fresh-weather.com 【世纪下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式