【问题标题】:Save file in iCloud Drive Documents (user Access)将文件保存在 iCloud Drive 文档中(用户访问)
【发布时间】:2018-02-01 10:10:24
【问题描述】:

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

目前我可以将文件保存在 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 的标准文档目录中吗?或者我可以为我的应用中的文档创建一个用户可以看到的文件夹吗?

【问题讨论】:

  • 实际上我已经成功了。我看到的唯一方法是使用 UIDocumentPickerViewController。如果您知道不需要 Picker 的更好解决方案,我将不胜感激。

标签: ios swift icloud icloud-drive


【解决方案1】:

尝试将文件保存在“文档”目录下,这样可以确保文件保存在用户公共目录下并且在 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 上的 Documents 目录是否存在,如果不存在则创建一个新目录。

【讨论】:

    猜你喜欢
    • 2016-02-16
    • 2016-01-07
    • 1970-01-01
    • 2021-09-21
    • 2014-11-22
    • 2018-02-04
    • 2016-02-01
    • 2018-03-08
    • 2015-01-19
    相关资源
    最近更新 更多