删除文件我先发布我的代码:不能在尝试捕捉
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上。
您正在使用哪种操作系统? Windows有锁定文件的倾向,在Linux/Unix上你可能遇到权限问题。此外,它可能意味着该文件不存在。你可以使用'.exists()'来检查吗? –
我现在在Windows上。 –
只是好奇,什么是抓住'JAXBException'堆栈跟踪?也许这有助于确定文件是否仍然打开并且在您尝试删除文件时被锁定。 – dic19