我有iOS应用程序。文档目录中有一些文件。我需要检查这些文件是否已编辑或替换。这样做的正确方法是什么?我应该对文件的哈希值或上次编辑的时间(如何在iOS中获取这个时间)或者有更好的方法来实现它?
答案 0 :(得分:4)
您可以使用此代码获取文件修改日期:
NSFileManager* fileManager = [NSFileManager defaultManager];
NSDictionary* attributes = [fileManager attributesOfItemAtPath:path error:nil];
if (attributes != nil) {
NSDate *date = (NSDate*)[attributes objectForKey:NSFileModificationDate];
NSLog(@"Last modification date: %@", [date description]);
} else {
NSLog(@"Not found");
}
答案 1 :(得分:1)
散列整个文件会起作用,但对于大多数用途来说有点矫枉过正。我结合了一些可以快速访问的内容:
如果您使用的是基于NSURL的API(iOS 4.0+),我会使用
st_ctime
?)我至少使用修改时间和文件大小。除非内容发生变化,否则其他事情通常不会发生变化,但有几点需要注意:
st_ctime
(并且我不完全确定它是),那么几乎保证能够捕获文件的所有更改,但也可能会发现很多变化t表示文件内容的更改。我不知道这些更改是否在外部发生(例如,iTunes / iCloud备份集属性是否作为备份过程的一部分?)。