在删除文件之前,我们需要在file.delete()
之前调用file.exists()
。
File file = ...;
if (file.exists()){
file.delete();
}
目前,在我们所有的项目中,我们在一些util类中创建了一个静态方法来包装这些代码。有没有其他方法可以实现同样的目的,这样我们就不需要在每个其他项目中复制我们的utils文件。
发布于 2014-12-22 17:39:32
从Java7开始,您可以使用deleteIfExists返回一个布尔值(或抛出异常),这取决于文件是否被删除。对于其他文件系统操作,该方法可能不是原子的。此外,如果某个文件正在被JVM/其他程序使用,那么在某些操作系统上,它将无法删除该文件。每个文件都可以通过toPath
方法转换为path。例如。
File file = ...;
boolean result = Files.deleteIfExists(file.toPath()); //surround it in try catch block
发布于 2014-12-22 17:41:01
file.delete();
如果文件不存在,它将返回false。
发布于 2014-12-22 17:40:18
还有Java 7解决方案,使用新的(Ish)路径抽象:
Path fileToDeletePath = Paths.get("fileToDelete_jdk7.txt");
Files.delete(fileToDeletePath);
希望这能有所帮助。
https://stackoverflow.com/questions/27599965
复制相似问题