我有一个目录和子文件夹。 该目录包含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/*"))
答案 0 :(得分:1)
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"
答案 1 :(得分:1)
您可以像这样从子目录(而不是目录本身)删除文件:
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}")
}
}
}