Обновляет ли iOS даты изменения файлов?

Я пытаюсь определить, был ли (и когда) изменен файл в каталоге временных файлов моего приложения, но дата изменения (NSFileModificationDate в атрибутах файла), похоже, всегда соответствует дате создания (NSFileCreationDate). У меня есть смутное воспоминание, что файловая система в iOS не обновляет даты модификации, но я нигде не нашел этого документированного.

Может ли кто-нибудь подтвердить (и, возможно, указать на документацию), что iOS не обновляет даты модификации?

Кроме того, есть ли другой метод определения того, изменился ли файл, не считая хеширования содержимого и отслеживания результата самостоятельно?


person Caleb    schedule 16.05.2012    source источник


Ответы (1)


Я думаю, это все еще работает. Взято из Получить содержимое каталога в порядке изменения даты:

+ (NSDate*) getModificationDateForFileAtPath:(NSString*)path {
    struct tm* date; // create a time structure
    struct stat attrib; // create a file attribute structure

    stat([path UTF8String], &attrib);   // get the attributes of afile.txt

    date = gmtime(&(attrib.st_mtime));  // Get the last modified time and put it into the time structure

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setSecond:   date->tm_sec];
    [comps setMinute:   date->tm_min];
    [comps setHour:     date->tm_hour];
    [comps setDay:      date->tm_mday];
    [comps setMonth:    date->tm_mon + 1];
    [comps setYear:     date->tm_year + 1900];

    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDate *modificationDate = [[cal dateFromComponents:comps] addTimeInterval:[[NSTimeZone systemTimeZone] secondsFromGMT]];

    [comps release];

    return modificationDate;
}
person Dylan Gattey    schedule 18.05.2012