我正在使用Vapor,这是用于创建Web服务器的服务器端Swift 4框架。我想应用从JSON文件读取的迁移。但是,我在此看到的大多数(即使不是全部)Swift教程都表明使用Bundle
,据我所知,在开发服务器端swift应用程序时不可用,这意味着这样的尝试不起作用:
if let path = Bundle.main.url(forResource: "myFile", withExtension: "json") {
...
这给了一个问题,给定一个相对的文件路径,我该如何使用服务器端Swift读取文件?
答案 0 :(得分:7)
愚蠢的我。蒸气公开了一个DirectoryConfig
对象,您可以从中检索应用程序的工作目录。要解析文件,它变成:
let directory = DirectoryConfig.detect()
let configDir = "Sources/App/Configuration"
do {
let data = try Data(contentsOf: URL(fileURLWithPath: directory.workDir)
.appendingPathComponent(configDir, isDirectory: true)
.appendingPathComponent("myFile.json", isDirectory: false))
// continue processing
} catch {
print(error)
}