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

我有一个问题,当我想更新我的(比方说订单号),我试图重命名的图像文件。比方说,原始文件在MainImage15,我想重命名为MainImage16与Files.Copy或Files.Move,然后我试图删除成功复制后,我得到了这样的错误。

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

I dont know what to do. Should I use buffer close? but I just renaming the file.

解决方案:

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

要确保它是真的–删除这一行 Files.copy

所以你必须找到是谁让这个句柄忙起来的。基本上有两种可能。

  1. 它在你代码中的其他地方
  2. 它的某种外部进程(杀毒软件,另一个你用来渲染图像的应用程序等等)。你可以使用 流程浏览器 这将有助于找到保持手柄的过程。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

上传图片并获得可读格式

2022-4-20 14:01:26

解决方案

如何改变Mat-Calandar的显示值?

2022-4-20 14:01:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索