你可以在一行中要求整个工具包
//> using toolkit latest
或者,你只需要求 OS-Lib 的特定版本
//> using dep com.lihaoyi::os-lib:0.9.1
在 build.sbt
中,你可以添加对工具包的依赖项
lazy val example = project.in(file("example"))
.settings(
scalaVersion := "3.2.2",
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"
)
或者,你只需要求 OS-Lib 的特定版本
libraryDependencies += "com.lihaoyi" %% "os-lib" % "0.9.1"
在 build.sc
文件中,你可以添加对工具包的依赖项
object example extends ScalaModule {
def scalaVersion = "3.2.2"
def ivyDeps =
Agg(
ivy"org.scala-lang::toolkit:0.1.7"
)
}
或者,你只需要求 OS-Lib 的特定版本
ivy"com.lihaoyi::os-lib:0.9.1"
路径
OS-Lib 中的基本数据类型是 os.Path
,表示文件系统上的路径。os.Path
始终是绝对路径。
OS-Lib 还提供了 os.RelPath
(相对路径)和 os.SubPath
(不能上升到父目录的相对路径)。
创建路径的典型起点是 os.pwd
(当前工作目录)、os.home
(当前用户的家目录)、os.root
(文件系统的根目录)或 os.temp.dir()
(一个新的临时目录)。
路径有一个 /
方法,用于添加路径段。例如
val etc: os.Path = os.root / "etc"
读取目录
os.list
返回目录的内容
val entries: Seq[os.Path] = os.list(os.root / "etc")
或者,如果我们只想要子目录
val dirs: Seq[os.Path] = os.list(os.root / "etc").filter(os.isDir)
要递归地遍历整个子树,请将 os.list
更改为 os.walk
。要实时处理结果,而不是先将它们全部读入内存,请替换为 os.walk.stream
。
此页面的贡献者
内容
- 简介
- 使用 MUnit 进行测试
- 如何编写测试?
- 如何运行测试?
- 如何运行单个测试?
- 如何测试异常?
- 如何编写异步测试?
- 如何管理测试的资源?
- MUnit 还能做什么?
- 使用 OS-Lib 处理文件和进程
- 如何读取目录?
- 如何读取文件?
- 如何写入文件?
- 如何运行进程?
- OS-Lib 还能做什么?
- 使用 uPickle 处理 JSON
- 如何在 JSON 中访问值?
- 如何修改 JSON?
- 如何将 JSON 反序列化为对象?
- 如何将对象序列化为 JSON?
- 如何读写 JSON 文件?
- uPickle 还能做什么?
- 使用 sttp 发送 HTTP 请求
- 如何发送请求?
- 如何构造 URI 和查询参数?
- 如何发送带正文的请求?
- 如何发送和接收 JSON?
- 如何通过 HTTP 上传文件?
- sttp 还能做什么?