scala删除所有文件但不删除目录

scala delete all files but not directory

我在其中有一个目录和子文件夹。 该目录包含5个文件和1个子目录。 我需要清空子文件夹并删除 5 个文件中的 3 个。

目前我正在使用下面的代码删除文件,但子文件夹没有变空。 请推荐

  Files.deleteIfExists(Paths.get("src/main/tempDir/doc-topics-new.txt"))
  Files.deleteIfExists(Paths.get("src/main/tempDir/new_corpus.mallet"))
  Files.deleteIfExists(Paths.get("src/main/tempDir/corpus.mallet"))
  Files.deleteIfExists(Paths.get("src/main/tempDir/sub_directory/*"))

better-files 支持使用 file.clear() 删除目录中的所有子目录,而使用 file.delete() 可以删除文件。这是一个工作示例

import better.files._

object Hello extends App {
    val subdirectory = file"/path/to/subdirectory"
    subDirectory.clear()

    val file1 = file"/path/to/file1.txt"
    file1.delete()
}

我们需要以下依赖项

libraryDependencies += "com.github.pathikrit" %% "better-files" % "3.8.0"

您可以像这样从子目录(而不是目录本身)中删除文件:

def deleteOnlyFiles(file: File): Unit = {
  if (file.isDirectory) {
    file.listFiles.foreach(deleteOnlyFiles)
  } else {
     if (file.exists && !file.delete) {
       throw new Exception(s"Unable to delete ${file.getAbsolutePath}")
     }
  }
}