gpt4 book ai didi

java - 无法在 try catch 中删除文件

转载 作者:行者123 更新时间:2023-12-01 14:16:41 25 4
gpt4 key购买 nike

我先发布我的代码:

private void validateXml(String xml) throws BadSyntaxException{
File xmlFile = new File(xml);
try {
JaxbCommon.unmarshalFile(xml, Gen.class);
} catch (JAXBException jxe) {
logger.error("JAXBException loading " + xml);
String xmlPath = xmlFile.getAbsolutePath();
System.out.println(xmlFile.delete()); // prints false, meaning cannot be deleted
xmlFile.delete();
throw new BadSyntaxException(xmlPath + "/package.xml");
} catch (FileNotFoundException fne) {
logger.error("FileNotFoundException loading " + xml + " not found");
fne.printStackTrace();
}
}

你可以在我打印的评论中看到该文件无法删除。无法从 try/catch 中删除文件?因此,如果有一个 xml 语法错误的文件,我想删除 catch 中的文件。

编辑:当我从此函数外部使用delete()时,我可以删除该文件。我在 Windows 上。

最佳答案

确保此方法调用 JaxbCommon.unmarshalFile(xml, Gen.class); 在发生异常时关闭任何流。如果读取文件的流保持打开状态,则您无法删除它。

关于java - 无法在 try catch 中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066414/

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