我想获取最近访问过的文件夹列表。如何实现呢?
答案 0 :(得分:2)
Finder
将Recent Folders
菜单中的项目存储在:
~/Library/Preferences/com.apple.finder.plist
此信息不适用于其他应用程序,因此格式如有更改,恕不另行通知。
您仍然可以使用NSUserDefaults
或CFPreferences
检索列表。
以下代码适用于Yosemite。我没有包含任何错误检查:
//Read the latest changes.
CFPreferencesAppSynchronize(CFSTR("com.apple.finder"));
//Retrieve the folder list.
NSArray* folderList = (__bridge_transfer NSArray*)
CFPreferencesCopyAppValue(CFSTR("FXRecentFolders"), CFSTR("com.apple.finder"));
for (NSDictionary* currentFolder in folderList) {
//Print name.
NSLog(@"Name: %@", [currentFolder objectForKey:@"name"]);
//Print path.
NSURL* folderURL = [NSURL URLByResolvingBookmarkData:[currentFolder objectForKey:@"file-bookmark"]
options:NSURLBookmarkResolutionWithoutUI |
NSURLBookmarkResolutionWithoutMounting
relativeToURL:nil
bookmarkDataIsStale:nil
error:nil];
NSLog(@"Path: %@", [folderURL path]);
}