广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java删除文件时总是返回false,删不掉的解决方案
  • 682
分享到

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

2024-04-02 19:04:59 682人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录java删除文件时总是返回false,删不掉我的解决java文件删除不了的坑,特别是压缩文件下面列举一些情况java.util.zip.ZipFile.close()方法关闭ZI

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()方法就可以删除文件了

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

--结束END--

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

本文链接: https://www.lsjlt.com/news/135243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java删除文件时总是返回false,删不掉的解决方案
    目录java删除文件时总是返回false,删不掉我的解决java文件删除不了的坑,特别是压缩文件下面列举一些情况java.util.zip.ZipFile.close()方法关闭ZI...
    99+
    2022-11-12
  • 阿里云服务器文件删除不了的解决方案
    本文将针对关键词“阿里云服务器文件怎么删除不了”进行深入解析,探讨可能的原因并提供解决方案。 阿里云服务器文件删除不了,可能是由于多种原因导致的。可能是由于权限不足,也可能是由于文件正在被其他程序占用,或者是由于文件被系统锁定。接下来,我们...
    99+
    2023-11-19
    阿里 解决方案 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作