知道Cocoa中最后使用过的文档

时间:2011-05-10 05:54:43

标签: objective-c cocoa file

有没有办法使用cocoa(或objective-c)函数列出最后使用过的文件?

我希望有类似“最近的文件”

感谢您的帮助。

此致

1 个答案:

答案 0 :(得分:8)

使用-[NSDocumentController recentDocumentURLs]。它返回一个URL数组,表示应用程序最近打开的文档的位置。

<小时/> 根据评论进行修改:在这种情况下,您需要使用Launch Services API。例如:

- (NSArray *)globalRecentDocumentsURLs {
    LSSharedFileListRef recentDocsFileList;
    NSArray *recentDocsFiles;
    NSMutableArray *recentDocsURLs = nil;
    UInt32 seed;

    recentDocsFileList = LSSharedFileListCreate(NULL,
        kLSSharedFileListRecentDocumentItems, NULL);
    if (! recentDocsFileList) return nil;

    recentDocsFiles = (NSArray *)LSSharedFileListCopySnapshot(recentDocsFileList,
        &seed);

    if (recentDocsFiles) {
        recentDocsURLs = [NSMutableArray array];

        for (id file in recentDocsFiles) {
            CFURLRef fileURL = NULL;
            LSSharedFileListItemResolve((LSSharedFileListItemRef)file, 0,
                &fileURL, NULL);
            if (fileURL) [recentDocsURLs addObject:[(id)fileURL autorelease]];
        }

        [recentDocsFiles release];
    }

    CFRelease(recentDocsFileList);

    return recentDocsURLs;
}