Finder在哪里获取文件夹中项目的"添加日期"?

CRD*_*CRD 4 cocoa macos-carbon objective-c

如果文件夹放在Dock中,您可以按"添加日期"对其进行排序 - 这通常是"下载"文件夹的默认值.(有时Finder似乎没有使用添加的日期,但修改了日期,但它可以找到添加的日期.)Finder在哪里搞清楚这个?标准文件元数据(即由stat,getattrlist或FSGetCatInfo获得)不包含它.TIA

小智 10

是的,添加的日期可以从其他结构推断出来.实际上,它驻留在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;
}
Run Code Online (Sandbox Code Playgroud)