从dir中删除文件

时间:2018-03-09 11:01:28

标签: java

我正在将一些文件写入文件夹。

但是当我重用该文件夹时,我想删除该目录中的每个文件。问题是我不知道这个目录是否确实存在。

final String fileDir = "myPath/someDir/;
// If this dir exists, delete every file inside
//Populate this dir ( I have this code)

3 个答案:

答案 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);