使用Core Data存储NSTemporaryDirectory中的文件状态

时间:2014-05-15 08:11:19

标签: ios core-data nsfilemanager

每个iOS应用程序都有文件夹,我们可以存储从Internet下载或直接从应用程序创建的一些文件。

因此,当我将文件下载到NSTemporaryDirectory时,我还将此文件作为实体附加到核心数据。

例如我已经下载了文件description.pdf,在这一点上我创建了具有此文档完整路径的实体。

coreDataEntityFile.path = NSTemporaryDirectory /根文件夹/文件夹/ description.pdf

我跳过[NSString @"%@"]从不介意;

为什么我需要将文件存储在Core Data中?

我的文件管理器需要它,核心数据显示文件是否处于活动状态,是打开还是其他状态。

我的问题是什么?

假设我这里有10000个文件 NSTemporaryDirectory / Root Folder / Folder / ,并假设我想将文件夹重命名为我的文件夹

所以路径将是 NSTemporaryDirectory / Root Folder / My Folder /

但是核心数据仍然没有关于更改,如果我想在核心数据中更改此目录,我需要使用新路径重命名所有 coreDataEntityFile.path

但是对于10000来说这不是一个好的解决方案。

所以我只是重命名文件夹,我想也许我需要使用一些非常简单的方法。

1 个答案:

答案 0 :(得分:0)

您应该考虑使用NSURL及其书签功能。来自Apple:

  

在OS X v10.6及更高版本中,NSURL类为其提供了便利   创建和使用书签对象。书签提供持久性   引用文件系统资源。当您解析书签时,您   获取资源当前位置的URL。书签的   与文件系统资源(通常是文件或文件夹)的关联   如果用户移动或重命名资源,通常会继续工作,   或者如果用户重新启动您的应用程序或重新启动系统。

来源:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html

这样,文件路径的更改对您来说无关紧要,书签将始终是最新的。我没有在iOS上尝试过这个临时目录,但我认为没有理由说它也不应该在那里工作。