在iphone上存储文件的正确/最佳方法是什么?
我想将文件保存在iphone的某个目录中。我已经读过,归档用户主目录不是很好的做法。
文件应存储在何处以及如何保存这些文件的URL?因此,在将多个文件保存到用户手机后,可以存储URL以便稍后管理文件。
我想存储文件,保留文件句柄并将这些句柄存储在数据结构中,以及稍后使用数据结构中的URL检索文件,以便可以访问和删除文件。
这样做的正确/最佳方式是什么?
答案 0 :(得分:-2)
文件存储在App的Documents文件夹中。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
[paths lastObject];
将为您提供文档路径。
然后我会使用NSKeyedArchiver和NSKeyedUnarchiver来存储网址,并将其放入文档中。
要查看文档目录中的内容,只需使用NSFileManager contentsOfDirectoryAtPath:error:
方法,即可返回方便的NSArray
。打电话给lastObject
然后你去吧。
<强>更新强>:
必须使用NSKeyedArchiver和NSKeyedUnarchiver对NSURL
进行编码和解码,因为它们不是plists的基本对象。虽然您可以将它们转换为字符串,但您可以使用[array writeToFile:file atomically:YES]
。另一个选项是CoreData,但这可能有点多。
最好将所有网址存储在一个文件中,只需在删除和添加网址时覆盖并进行更改。
您没有填写用户的文档目录,您正在填写应用程序的文档目录。文档文件夹是您用户生成的文件的位置。将来您可能决定将Document目录打开到iTunes,以便用户可以通过这种方式添加和删除文件。与应用程序相关的事情应该存储在Library文件夹中。
我希望这能解释我到底有什么好转的。我似乎得到的印象是,您只想将URL存储为单个文件并存储句柄。您可以获取句柄但只知道存储所有内容的目录。获取该文件夹中的文件数组,然后使用unarchiver或initWithFileContents:
NSDictionary
或NSArray
加载它们}。