如果我将文件保存到文件夹中的documents目录,它在磁盘上会停留多久?永远(在这种情况下,如果我想手动删除它,我必须手动删除它)还是每次应用程序关闭时都会删除它?
documents
目录中的文件将一直存在,直到用户删除应用程序、重置设备或您删除代码中的文件。但也要注意,documents
目录的内容是由iTunes备份的,因此可能会比您预期的持续时间更长。
另一方面,tmp
目录不是那么持久,它的内容不一定能在应用程序重新启动后存活下来(它们也没有由iTunes备份),所以如果你不想要持久存储,你可以使用它。/Library/Caches/
的相似之处在于它没有备份,但它是持久的。来自有关tmp
:的文档
当您的应用程序未运行时,系统会定期清除[
tmp
文件夹中]的这些文件;因此,在应用程序终止后,您不能依赖这些文件。
基本上,如果您想在短时间内存储某个内容,而操作系统是否删除了该内容并不重要,请使用tmp
。如果你想要一些能持续应用程序启动等但仍无法通过iTunes备份的东西,请使用Library中的cache
文件夹。如果您想要持久存在并已备份的内容,请使用documents
。
基于评论的额外信息
如果重新启动应用程序时图像会消失,则应使用tmp
。但请注意,tmp
目录并不能保证在应用程序重新启动时被清除。下次你加载应用程序时,这些图像肯定会在那里。这真是一场赌博。如果杀死图像是至关重要的,那么在合适的地方手动擦除它们:
NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
for (NSString *file in tmpDirectory) {
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
}