文件在文档目录(iOS)中停留的时间



如果我将文件保存到文件夹中的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];
}

最新更新