我正在将一些文件写入文件夹。
但是当我重用该文件夹时,我想删除该目录中的每个文件。问题是我不知道这个目录是否确实存在。
final String fileDir = "myPath/someDir/;
// If this dir exists, delete every file inside
//Populate this dir ( I have this code)
答案 0 :(得分:1)
这是检查文件是否存在的方法
if(f.exists() && !f.isDirectory()) {
// delete
}
答案 1 :(得分:1)
在package java.nio.file
中你有非常方便的utils(来自java7):
Files.deleteIfExists(path)
并且如果你想以递归的方式删除......如:
Path path = Paths.get("/path/to/your/dir");
Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path directory, IOException exception) throws IOException {
Files.delete(directory);
return FileVisitResult.CONTINUE;
}
});
答案 2 :(得分:0)
使用org.apache.commons.io.FileUtils
类
FileUtils.cleanDirectory(directory);
同一文件中提供了此方法。这也将递归删除其下的所有子文件夹和文件。
final String fileDir = "myPath/someDir/";
File dir = new File(fileDir);
FileUtils.cleanDirectory(dir);