Где Finder получает «дату добавления» элемента в папке? - PullRequest
3 голосов
/ 15 мая 2011

Если папка находится в Dock, вы можете отсортировать ее по «дате добавления» - это обычно значение по умолчанию для папки «Загрузки».(Иногда Искатель, кажется, не использует добавленную дату, но измененную дату, но он может найти добавленную дату.) Откуда Искатель вычисляет это?Стандартные метаданные файла, т. Е. Полученные с помощью stat, getattrlist или FSGetCatInfo), не содержат их.ТИА

Ответы [ 2 ]

10 голосов
/ 03 августа 2011

Да, добавленная дата может быть выведена из других структур. На самом деле он находится в метаданных Spotlight.

NSDate *dateAdded(NSURL *url)
{
    NSDate *rslt = nil;
    MDItemRef inspectedRef = nil;

    inspectedRef = MDItemCreateWithURL(kCFAllocatorDefault, (CFURLRef)url);
    if (inspectedRef){
        CFTypeRef cfRslt = MDItemCopyAttribute(inspectedRef, (CFStringRef)@"kMDItemDateAdded");
        if (cfRslt) {
            rslt = (NSDate *)cfRslt;
        }
    }
    return rslt;
}
1 голос
/ 15 мая 2011

Примечание: устарело теперь, когда Льва нет.

Искатель не, док.Он отслеживает эти данные внутри.Если вы удалите папку и вернете ее обратно, информация о дате добавления будет потеряна для существующих элементов.

...