gpt4 book ai didi

java - 如何在Java中删除重命名文件后的图像并删除原始文件?

转载 作者:行者123 更新时间:2023-12-02 08:42:00 24 4
gpt4 key购买 nike

当我想更新我的(比如说 orderNumber)并且我尝试重命名图像文件时遇到问题。假设原始文件 ini MainImage15 我想使用 Files.Copy 或 Files.Move 重命名为 MainImage16,之后我尝试在成功复制后删除。我收到这样的错误

java.nio.file.FileSystemException: C:\Users\User\apache\webapps\Promotion\030000\MainImage15.jpg: The process cannot access the file because it is being used by another process.
public void renameFileToFileSystem(final String fileName, final String oldFileLocation, final String newFileLocation) {
Path source = Paths.get(oldFileLocation);
Path destination = Paths.get(newFileLocation);
try {
Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
Files.delete(source);
} catch (final IOException ioException) {
throw new ContentManagementException(fileName, ioException.getMessage());
}
}

我不知道该怎么办。我应该使用缓冲区关闭吗?但我只是重命名该文件。谢谢。

最佳答案

我认为 Files.copy 不会使文件句柄保持打开状态。

要确保其真实性 - 删除 Files.copy 行并重新运行 - 您可能仍然无法删除该文件。

所以你必须找出是谁让句柄忙碌。基本上有两种可能性:

  1. 它在代码的其他地方
  2. 它是某种外部进程(防病毒软件、您用来渲染图像的另一个应用程序等)。您可以使用Process Explorer这将有助于找到保留句柄的进程。

关于java - 如何在Java中删除重命名文件后的图像并删除原始文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61324824/

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