我正在 Kotlin-Multiplatform 中启动一个项目。通过Java访问资源文件夹很容易,但我不知道如何通过JS针对Node访问它。
在测试过程中,我发现资源文件存储在单独的文件夹中。如果我没记错的话:
build/js
|-- package
| |--project
| |--project-test \\tests are executed here via calling __dirname in node
|
|--processedResources
|-- testfile.txt \\ files in the resource folder are stored here
我想知道:如何通过 JS/Node 完成?
您可以尝试使用
fs
:
external fun require(name: String): dynamic
external val __dirname: dynamic
val fs = require("fs")
val path = require("path");
fun main() {
val path = path.join(
__dirname,
"..\\..\\..\\..",
"processedResources",
"js",
"main",
"test.txt"
)
println(fs.readFileSync(path, "utf8"))
}
有一种使用纯kotlinx的方法(不涉及javascript),但我不知道相对路径有多稳定。如果不起作用,请尝试增加或减少
../
。
import kotlinx.io.buffered
import kotlinx.io.files.Path
import kotlinx.io.files.SystemFileSystem
import kotlinx.io.readString
import kotlin.test.Test
class ReadFileTest {
@Test
fun readFileTest() {
val file = Path("../../../processedResources/testfile.txt")
val fullDoc = SystemFileSystem.source(file).buffered().readString()
println(fullDoc)
}
}
顺便说一句,我使用
../../../../src/jsTest/resources/
访问我的资源