#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. Спасибо, это именно то, к чему я стремился.