iosswift3nsbundle

How to get path to a subfolder in main bundle?


I have a project which I am migrating from Obj-C to Swift 3.0 (and I am quite a noob in Swift).

How do I translate this line?

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

I managed to get resource path:

let resoursePath = Bundle.main.resoursePath;

But how do I get path to a subfolder named "myfolder"? I need to get a path the subfolder, not path to the files inside it.


Solution

  • In Swift-3 make URL, and call appendingPathComponent:

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

    or simply

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

    (thanks, Martin R!)

    See this Q&A on information on stringByAppendingPathComponent method in Swift.