使用 Kotlin 多平台进行文件 IO

12

我希望在mingwX64 Windows(以及可能的其他平台)上进行一些基本的文件系统操作:打开、关闭、读取、重命名、获取元数据和列出目录中的文件。

我找到了一个承诺实现这些功能的项目:KotlinxIO。然而,多年来没有任何进展。

是否有其他替代方案或解决方法?


请注意,kolinx-io 最近有一些新的开发进展;截至本评论时,最新版本为0.3.0,发布于2023年9月。 - undefined
3个回答

8
最终,我使用了库Korio。文档可能需要改善,但是所有我需要的功能都已在所有平台(Jvm、Desktop、Android 等)实现:
import com.soywiz.korio.file.std.*

suspend fun main {
  val cwd = localCurrentDirVfs
  val files = cwd.list()
  cwd["Hello.txt"].open().close()
  cwd["Hello.txt"].renameTo("Hi.txt")
  val metadata = cwd["Hi.txt"].stat()
}

此外,它允许使用相同的API来访问在线文件、zip归档等,这非常方便。

5

你可能想看看OKIO。它有一些多平台支持和Windows目标,但我不知道文件系统部分是否在Windows上实现:https://github.com/square/okio


3

@Alex.T 的回答是正确的。java.io 库在 Windows 上也可以使用,就像你在任何其他 Java 应用程序中使用任何其他库一样(可以在 Google 上搜索),但是这段代码应该只在 Windows 部分的实际代码中使用,在通用部分中使用它需要创建期望/实际方法。 - Phil Dukhov
似乎无法在“mingwX64Main”中直接导入“java.io”。 - Ford O.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接