Найдите дату последнего обращения файла в какао

Действительно ли возможно получить дату последнего обращения файла/папки в Mac с помощью какао?

    struct stat output;
    //int ret = stat([[[openPanel filenames] lastObject] UTF8String], &output);
    int ret = stat([[[openPanel filenames] lastObject] fileSystemRepresentation], &output);
    // error handling omitted for this example
    struct timespec accessTime = output.st_atimespec;

    NSDate *aDate = [NSDate dateWithTimeIntervalSince1970:accessTime.tv_sec];

    NSLog(@"Access Time %d, %@",ret, aDate);

Согласно вышеупомянутому коду я попробовал и UTF8String и fileSystemRepresentation, но оба дают мне текущую дату и время. Сообщите мне, делаю ли я что-то не так.

6
задан AmitSri 17 May 2010 в 06:11
поделиться

3 ответа

Способ C, использующий системный вызов stat, будет работать в Objective-C.

например.

struct stat output;
int ret = stat(aFilePath, &output);
// error handling omitted for this example
struct timespec accessTime = output.st_atime;

Вы должны получить путь к файлу, отправив -fileSystemRepresentation в NSString, содержащий путь.

Другой способ получить желаемое - создать NSURL для URL-адреса файла, указывающего на нужный файл, и использовать -resourceValuesForKeys: error: для получения ресурса NSURLContentAccessDate . ценить.

11
ответ дан 8 December 2019 в 18:33
поделиться
1
ответ дан 8 December 2019 в 18:33
поделиться

Используя NSMetadataQuery, вы можете получить доступ к метаданным Spotlight из вашего кода. Последний использованный атрибут даты файла отслеживается прожектором, и вы можете получить к нему доступ с помощью этого свойства: kMDItemLastUsedDate.

1
ответ дан 8 December 2019 в 18:33
поделиться