安装时的Xcode / Swift默认文件 - iOS

时间:2017-03-30 09:22:20

标签: swift xcode file

我需要在安装过程中添加一些“默认”文件,或者在“文档”目录中首次启动我的应用程序,以便用户访问“演示”文件或预设。有没有办法正确地做到这一点? 它主要用于iOS应用程序。

2 个答案:

答案 0 :(得分:3)

进入应用程序的Documents目录非常简单:

func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let documentsDirectory = paths[0]
    return documentsDirectory
}

使用上述功能,您可以轻松地引用Documents文件夹将文件(或包含演示文件的文件夹)安装到Documents目录中,然后从中读取它们。

要从iOS应用程序包中复制默认文件,您可以执行以下操作:

let sourceURL = Bundle.main.url(forResource: "defaultfile", withExtension: ".png") // whatever kind of file it is
let destinationFolderURL = self.getDocumentsDirectory()
let fullDestURL = destinationFolderURL.appendingPathComponent("defaultfile.png")
let fileManager = FileManager.default

do{
    try fileManager.copyItem(at: sourceURL, to: destURL)
} catch {
    print(error)
}

希望我在上面的例子中没有做任何拼写错误。 : - )

答案 1 :(得分:2)

感兴趣的任何人的Obj-C解决方案

如果您希望用户只是阅读/查看这些文件,您只需将它们拖放到Xcode中的项目文件中,然后就可以这样以编程方式访问它们:

[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"relative/path/to/your/files"]

或者,如果您希望用户修改/重新保存这些文件,您需要在第一次启动时将它们从NSBundle复制粘贴到Documents目录。

- (void)copyDemoFilesToDocumentsFolder {
    NSError *error;
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *demoFilesPath = [DOCUMENTS_DIR stringByAppendingPathComponent:@"path/to/your/demo/files"];

    if (![fileManager fileExistsAtPath:demoFilesPath]) {
        NSString *sourceFolderPath = [[[NSBundle mainBundle] bundlePath]
                                  stringByAppendingPathComponent:@"path/to/your/demo/files"];

    [fileManager copyItemAtPath:sourceFolderPath
                         toPath:demoFilesPath
                          error:&error];
    }
}