2012-05-16 1 views
3

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

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

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

ответ

2

Я думаю, что это все еще работает. Получено с Get directory contents in date modified order:

+ (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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^