将文件保存在iCloud Drive Documents(用户访问)中

时间:2017-08-23 17:38:57

标签: ios swift icloud icloud-drive

我想在iCloud Drive中保存PDF文件。用户应该可以通过他的iCloud Drive App访问该文件。

目前我可以将文件保存在iCloud Drive中,但它位于隐藏目录中。

struct DocumentsDirectory {
    static let localDocumentsURL: NSURL? =  FileManager.default.urls(for:     FileManager.SearchPathDirectory.documentDirectory, in:     .userDomainMask).last! as NSURL
    static var url: NSURL? =   FileManager.default.url(forUbiquityContainerIdentifier: nil)! as NSURL
    static let iCloudDocumentsURL: NSURL? = url?.appendingPathComponent("Documents")! as! NSURL
}

使用此代码,我将获得iCloud Drive中的隐藏目录(特定于我的应用程序)。

现在我的问题是:我可以将文件保存在iCloud Drive的标准文档目录中吗?或者,我可以从我的应用程序创建文档的文件夹,用户可以看到吗?

1 个答案:

答案 0 :(得分:2)

尝试将文件保存在“Documents”目录下,这样可以确保文件保存在用户公共目录下,并且也可以在iCloud应用程序中看到。

func setupiCloudDriveForFileExport() {

    if let iCloudDocumentsURL = NSFileManager.defaultManager().URLForUbiquityContainerIdentifier(nil)?.URLByAppendingPathComponent("Documents") {
        if (!NSFileManager.defaultManager().fileExistsAtPath(iCloudDocumentsURL.path!, isDirectory: nil)) {
            do {
                try NSFileManager.defaultManager().createDirectoryAtURL(iCloudDocumentsURL, withIntermediateDirectories: true, attributes: nil)
            }catch let error as NSError {
                print(error)
            }
        }
    }
}

此代码检查iCloud上文档目录是否存在,如果没有创建新目录。