1

所以我正在使用 UIDocumentPicker 在我的应用程序中导入一个文件

    let documentMenu = UIDocumentMenuViewController(documentTypes: ["public.xml"], in: .import)
    documentMenu.modalPresentationStyle = .formSheet
    documentMenu.delegate = self

    present(documentMenu, animated: true)

我没有文档管理或类似的扩展。这是一个xml。我只需要解析它并向用户显示结果。它不可编辑,没有可保存的内容等。

在委托方法中

func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {
    parseFor(path: url)
}

我可以看到指向 /tmp/ 文件夹的路径。

Printing description of url:
▿ file:///private/var/mobile/Containers/Data/Application/9C47C67D-B6F3-4E93-8239-52DCA93A6003/tmp/package.Inbox/file.kml

问题是:用户完成后我应该对此做些什么吗?我想如果文件在 /tmp 中,它最终会被系统删除。

另外,如果是,我该怎么做?只需将路径保存在某处,然后删除该路径中的文件?

谢谢!

4

1 回答 1

4

从有关以下文档tmp/的文档中:

使用此目录来编写不需要在应用程序启动之间保留的临时文件。当不再需要文件时,您的应用应从该目录中删除文件;但是,当您的应用程序未运行时,系统可能会清除此目录。此目录的内容不由 iTunes 或 iCloud 备份。

所以不,你不需要任何事情,因为当你的应用程序不再运行时,操作系统会在某个未公开的时间进行清理。

但是,如果您知道文件已完成,通常最好将其删除并释放用户设备上的空间。删除文件的工作方式与删除给定路径中的任何文件相同。

于 2017-01-11T00:11:14.610 回答