【问题标题】:How to get path to a subfolder in main bundle?如何获取主包中子文件夹的路径?
【发布时间】:2017-04-03 05:29:27
【问题描述】:

我有一个项目,我正在从 Obj-C 迁移到 Swift 3.0(而且我是 Swift 的菜鸟)。

如何翻译这一行?

NSString *folder = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myfolder"];

我设法获得了资源路径:

let resoursePath = Bundle.main.resoursePath;

但是如何获得名为“myfolder”的子文件夹的路径? 我需要获取子文件夹的路径,而不是其中文件的路径。

【问题讨论】:

    标签: ios swift3 nsbundle


    【解决方案1】:

    在 Swift-3 中创建 URL,然后调用 appendingPathComponent

    let resourcePath = Bundle.main.resourcePath
    let subdir = URL(fileURLWithPath:resourcePath!).appendingPathComponent("sub").path
    

    或者干脆

    let subdir = Bundle.main.resourceURL!.appendingPathComponent("sub").path
    

    (谢谢,Martin R!)

    请参阅this Q&A,了解有关 Swift 中 stringByAppendingPathComponent 方法的信息。

    【讨论】:

    • @MartinR 感谢您的评论!
    • 这是最好的答案。
    【解决方案2】:

    您可以使用此方法获取捆绑子目录的列表并仅获取特定类型的资源:

    Bundle.main.paths(forResourcesOfType: type, inDirectory: folder)
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      let folderURL = resourceURL(to: "myfolder")
      
      func resourceURL(to path: String) -> URL? {
          return URL(string: path, relativeTo: Bundle.main.resourceURL)
      }
      

      【讨论】:

        猜你喜欢
        • 2015-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-27
        • 2011-08-17
        • 2010-12-02
        • 2011-05-08
        相关资源
        最近更新 更多