【问题标题】:Heroku: how to read file?Heroku:如何读取文件?
【发布时间】:2017-05-11 00:27:07
【问题描述】:

我有以下项目布局(已签约):

project_root
└── Sources
    └── App
        ├── main.swift
        └── Models
            └── SQL
                └── createTables.sql

我试图在运行时读取createTables.sql 文件,但FileManager.fileExists() 说它不存在。我通过在main.swift 中使用#file 得到了路径:

let path = URL(fileURLWithPath: #file).deletingLastPathComponent().path + "/Models/SQL/createTables.sql"

打印出路径,好像是正确的。 我猜由于 Heroku 的ephemeral filesystem,源代码树无法访问。如何解决这个问题并在运行时读取文件?

【问题讨论】:

    标签: swift file heroku file-io vapor


    【解决方案1】:

    编译后使用drop.workdir获取项目目录。

    try String(contentsOfFile: drop.workDir + "Resources/SQL/createTables.sql")
    

    请注意,我还将您的文件从Sources 移出并移入Resources。 Vapor 的项目布局并非一成不变,但目前的规则似乎是前者用于 Swift 文件,后者用于辅助文件。

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 2014-05-24
      • 2011-12-18
      • 2018-09-11
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多