File IO with Kotlin multiplatform

Viewed 3425

I would like to do some basic filesystem operations on mingwX64 Windows (and possibly other platforms): open, close, read, rename, get metadata, list files in a directory.

I have found one project that promises to implement this functionality: KotlinxIO. However, there has been no progress made in years.

Are there any other alternatives or workarounds?

3 Answers

In the end, I used the library Korio. The documentation could be better, but all of the functionality I need is implemented for all platforms (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()
}

On top of that, it allows usage of the same API for accessing online files, zip archives, etc. which is pretty neat.

You might want to look at OKIO. There is some multiplatform support, and a Windows target, but I don't know first hand if the filesystem portion is implemented on Windows: https://github.com/square/okio

Related