我将首先发布我的代码:
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 上。