2012-05-16 56 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; 
}