为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕哥6287543 2023-01-05 10:16:04

我在其中有一个目录和子文件夹。该目录包含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/*"))


查看完整描述

2 回答

?
幕布斯6054654

TA贡献1620条经验 获得超7个赞

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"


查看完整回答
反对 回复 2023-01-05
?
Cats萌萌

TA贡献1571条经验 获得超9个赞

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


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}")

     }

  }

}


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信