gpt4 book ai didi

java - 使用 Java (apache commons io) 删除文件时出现问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:19:05 27 4
gpt4 key购买 nike

我正在通过创建两个文件的 JNI 调用 C++ 方法。给定目录中的文本日志文件和 pdf 文件。我想在执行 JNI 方法之前删除这些文件(如果它们存在)。

我为此使用 Apache commons.io (FileUtils.forceDelete(File file))。当我执行时,我得到一个 IOException:

java.io.IOException: Unable to delete file: D:\Folder\file.log

在使用 File.canWrite() 方法触发删除方法之前,我检查了文件的可写状态。它为文件和父目录返回 true。

您知道为什么我在删除文件时遇到问题吗?据我所知,创建文件的 C++ 方法在方法完成后关闭或解锁它们。无论如何,我无权访问 C++ 代码的源代码,因此我无法检查是否确实如此或修改代码。

谢谢,马可

最佳答案

它几乎肯定被另一个进程锁定了。如果它是在操作系统级别锁定的另一个进程(假设您用文本编辑器打开文件),那么您将不会有太多运气。如果其他东西锁定了文件,即使 Windows 资源管理器也无法删除文件。但是看看java.nio.channels.FileLock用于相关的 API 调用。

关于java - 使用 Java (apache commons io) 删除文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977811/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com