Among other useful multiplatform extensions, which are modelled after kotlin.io
API available on the JVM, the library provides a way to convert a file system
path to a file://
URI and vice versa:
// Will print "file:/C:/Windows/"
println("C:\\Windows".toPath().toFileUri())
// Will print "C:\Program Files"
println(Uri("file:///C:/Program%20Files").toLocalPath().pathString)
UNC paths are supported on Windows:
// Will print "\\127.0.0.1\C$\Windows"
println(Uri("file:////127.0.0.1/C$/Windows").toLocalPath().pathString)
// Will print "\\WSL$\Debian\etc\passwd"
println(Uri("file:////WSL$/Debian/etc/passwd").toLocalPath().pathString)
IPv6 addresses are parsed correctly:
// Will print "\\--1.ipv6-literal.net\C$\Windows"
println(Uri("file://[::1]/C$/Windows").toLocalPath().pathString)
The latest release is available from GitHub Packages.
For build.gradle.kts
:
repositories {
maven {
name = "saveourtool/okio-extras"
url = uri("https://maven.pkg.github.com/saveourtool/okio-extras")
credentials {
username = project.findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR")
password = project.findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN")
}
}
}
For settings.gradle.kts
:
dependencyResolutionManagement {
repositories {
maven {
name = "saveourtool/okio-extras"
url = uri("https://maven.pkg.github.com/saveourtool/okio-extras")
credentials {
username = providers.gradleProperty("gpr.user").orNull
?: System.getenv("GITHUB_ACTOR")
password = providers.gradleProperty("gpr.key").orNull
?: System.getenv("GITHUB_TOKEN")
}
}
}
}
Then add the dependency as usual:
dependencies {
implementation("com.saveourtool:okio-extras:1.1.1")
}