作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用junrar但我在解压后删除存档时遇到问题。这是代码:
ExtractArchive extractArchive = new ExtractArchive();
extractArchive.extractArchive(new File(archiveFilePath), new File(destDirectory));
在此代码之后,我无法删除与 archiveFilePath 关联的文件。我尝试了 new File(archiveFilePath).delete();
和 apache commons io
FileDeleteStrategy.FORCE.delete(new File(archiveFilePath));
但我收到 false 或一个异常,因为文件是从另一进程使用的。有人对这个库遇到过同样的问题吗?我可以通过其他方式删除该文件吗?谢谢
这里有一个问题的确认: https://github.com/edmund-wagner/junrar/issues/28
最佳答案
ExtractArchive.extractArchive(...)
中的代码存在缺陷,因为它在内部创建了一个 Archive
实例,但它从不调用 close()
> 释放其资源和文件句柄。
在 Windows 上,这会导致文件被锁定,除非 JVM 结束或垃圾收集器已收集该存档的所有对象实例并因此释放文件句柄,否则无法删除该文件。
在 Windows 上没有其他方法可以删除该文件!
关于java - 通过Junrar解压rar文件然后删除压缩包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652814/
我是一名优秀的程序员,十分优秀!