gpt4 book ai didi

java.io.IOException : Failed to delete original file moveFileToDirectory

转载 作者:行者123 更新时间:2023-11-30 06:14:02 29 4
gpt4 key购买 nike

在文件转换后,我尝试使用 FileUtils.moveFileToDirectory 在 if 语句中移动以下文件。 JPG 和 gif 文件被移动到新文件夹,但每当程序找到 ICO 文件时,它都不会将该文件移动到新文件夹,并给出 StackTrace: java.io.IOException: 无法删除原始文件“原始路径”复制到“文件的新路径”后的“文件的新路径”。下面是该方法的代码:

public void storeOriginalImages() {
for(File file: model.getFileList()) {
if(file.getName().endsWith(".GIF") || file.getName().endsWith(".gif") || file.getName().endsWith(".JPG")
|| file.getName().endsWith(".jpg") || file.getName().endsWith(".ico") || file.getName().endsWith(".ICO")
|| file.getName().endsWith(".BMP") || file.getName().endsWith(".bmp")) {
System.out.println("in copy else");
File illegalExtension = new File(file.getAbsolutePath());
File illegalExtensionDest = new File(model.getTargetexcelFilepath() + "/" + model.getFolderName() + "_img_backup");
System.out.println(illegalExtension + "/" + illegalExtensionDest);

try {
FileUtils.moveFileToDirectory(illegalExtension, illegalExtensionDest, true);
} catch (IOException e) {
e.printStackTrace();
}
}
}

}

这就是 ICO 文件转换为 png 的方式:

else if(s.getName().endsWith(".ico") || s.getName().endsWith(".ICO")) {
List<BufferedImage> bi = ICODecoder.read(new File(s.getAbsolutePath()));
System.out.println("reading");
ImageIO.write(bi.get(0), "png", new File(s.getParentFile().getAbsoluteFile(), fileNameWithOutExt + ".png"));
System.out.println("Ico was converted.");
}

最佳答案

我拿了你的例子并做了一些编辑。似乎当 ICODecoder 尝试使用流读取文件时,它没有正确关闭它,因此您需要在代码中关闭它。这是工作示例

File oldFile = new File("a.ico");
try (InputStream inputStream = new FileInputStream(oldFile)) {
List<BufferedImage> bi = ICODecoder.read(inputStream);
ImageIO.write(bi.get(0), "png", new File("a" + ".png"));

} catch (IOException e) {
LOG.error("Something happend", e);
}
FileUtils.moveFile(oldFile, new File("a.jpg"));

移动文件之前需要关闭输入流。

关于java.io.IOException : Failed to delete original file moveFileToDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49626912/

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