我们需要调用file.exists()之前file.delete()才可以删除文件,例如:
File file = ...;
if (file.exists()){
file.delete();
}
Run Code Online (Sandbox Code Playgroud)
目前在我们的所有项目中,我们在一些util类中创建一个静态方法来包装此代码.是否有其他方法可以实现相同的目的,因此我们不需要在每个其他项目中复制我们的utils文件.
sol*_*4me 82
从Java 7开始,您可以使用deleteIfExists返回布尔值(或抛出异常),具体取决于文件是否被删除.对于其他文件系统操作,此方法可能不是原子的.此外,如果JVM /其他程序正在使用某个文件,那么在某些操作系统上它将无法将其删除.每个文件都可以通过toPath方法转换为路径.例如
File file = ...;
boolean result = Files.deleteIfExists(file.toPath()); //surround it in try catch block
Run Code Online (Sandbox Code Playgroud)
Mar*_*aux 25
在我的机器上,我可以这样做:
file.delete()
Run Code Online (Sandbox Code Playgroud)
如果文件不存在,则返回false.
还有Java 7解决方案,使用新的(ish)路径抽象:
Path fileToDeletePath = Paths.get("fileToDelete_jdk7.txt");
Files.delete(fileToDeletePath);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 5
Apache Commons IO 的FileUtils提供FileUtils.deleteQuietly:
删除文件,从不抛出异常。如果 file 是一个目录,则删除它和所有子目录。File.delete() 与该方法的区别是:
- 要删除的目录不必为空。
- 当无法删除文件或目录时,不会引发异常。
这提供了一个单行删除调用,如果文件删除失败,它不会抱怨:
FileUtils.deleteQuietly(new File("test.txt"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87080 次 |
| 最近记录: |