Знать последние использованные документы в Cocoa

#objective-c #cocoa #file

#objective-c #cocoa #файл

Вопрос:

Есть ли способ составить список последних использованных файлов с использованием функций cocoa (или objective-c)?

Я хотел бы иметь что-то вроде «последние документы»

Спасибо за вашу помощь.

С уважением,

Ответ №1:

Используйте -[NSDocumentController recentDocumentURLs] . Он возвращает массив URL-адресов, представляющих местоположения документов, недавно открытых вашим приложением.


Редактировать на основе комментария: В этом случае вам нужно использовать 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,
        amp;seed);

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

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

        [recentDocsFiles release];
    }

    CFRelease(recentDocsFileList);

    return recentDocsURLs;
}
  

Комментарии:

1. Звучит неплохо, но я хотел бы иметь это для всех приложений, а не только для моего. Спасибо.

2. @AP Я отредактировал ответ с помощью метода, который возвращает массив с глобальными последними документами для пользователя.

3. Спасибо, это именно то, к чему я стремился.