Swift 3 - 将包含内容的文件夹从主包复制到文档目录

时间:2017-06-08 11:26:40

标签: ios swift3 mainbundle documentsdirectory

我的主要包中包含文件夹,我想在第一次启动应用程序时将它们复制/剪切到文档目录,以便从那里访问它们。我已经看过一些例子,但是他们都是在Obj-C中使用Swift 3.我怎么能这样做?

1 个答案:

答案 0 :(得分:11)

我设法使用2个功能:

func copyFolders() {
    let filemgr = FileManager.default
    filemgr.delegate = self
    let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask)
    let docsURL = dirPaths[0]

    let folderPath = Bundle.main.resourceURL!.appendingPathComponent("Test").path
    let docsFolder = docsURL.appendingPathComponent("Test").path
    copyFiles(pathFromBundle: folderPath, pathDestDocs: docsFolder)
}

func copyFiles(pathFromBundle : String, pathDestDocs: String) {
    let fileManagerIs = FileManager.default
    fileManagerIs.delegate = self

    do {
        let filelist = try fileManagerIs.contentsOfDirectory(atPath: pathFromBundle)
        try? fileManagerIs.copyItem(atPath: pathFromBundle, toPath: pathDestDocs)

        for filename in filelist {
            try? fileManagerIs.copyItem(atPath: "\(pathFromBundle)/\(filename)", toPath: "\(pathDestDocs)/\(filename)")
        }
    } catch {
        print("\nError\n")
    }
}