Получить настоящую "последнюю открытую" дату?

Следующий код работает. Ожидается, что он вернет дату последнего запуска приложения, но...

// e.g. entryPath = @"/Applications/Evernote.app"

struct stat output;
int ret = stat([entryPath fileSystemRepresentation], &output);
if (ret == 0)
{
    struct timespec accessTime = output.st_atimespec;
    NSDate * date1 = [[NSDate dateWithTimeIntervalSince1970:accessTime.tv_sec]
            dateWithCalendarFormat:nil timeZone:[NSTimeZone localTimeZone]];

    // and the 10.6+ version: (the result was always the same for me)
    NSDate * date2 = [[[[NSURL fileURLWithPath:entryPath]
            resourceValuesForKeys:[NSArray arrayWithObject:NSURLContentAccessDateKey]
                            error:nil]
            objectForKey:NSURLContentAccessDateKey]
            dateWithCalendarFormat:nil timeZone:[NSTimeZone localTimeZone]];
}

Он возвращает очень странные даты, обычно около 3:00-3:30 утра, сегодня или вчера, когда я действительно спал. Но после этого я нажимаю "Получить информацию" в Finder, и он показывает реальную дату последнего запуска (которая обычно меньше date1 а также date2, но может быть и равным). Как получить это программно?Информация о поиске: Дата последнего открытия

0 ответов

Другие вопросы по тегам