如何在Objective-C中获取最近的文件夹历史记录?
我想获取最近访问的文件夹列表。如何实现它?Finder将“最近使用的文件夹”菜单中的项目存储在: 此信息不适用于其他应用程序,因此格式可能会更改,恕不另行通知 仍然可以使用NSUserDefaults或CFPreferences检索列表 下面的代码在约塞米蒂工作。我没有包括任何错误检查:如何在Objective-C中获取最近的文件夹历史记录?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我想获取最近访问的文件夹列表。如何实现它?Finder将“最近使用的文件夹”菜单中的项目存储在: 此信息不适用于其他应用程序,因此格式可能会更改,恕不另行通知 仍然可以使用NSUserDefaults或CFPreferences检索列表 下面的代码在约塞米蒂工作。我没有包括任何错误检查: //Read the latest changes. CFPreferencesAppSynchronize(CFSTR("com.apple.finder")); //Retrieve the folder
//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]);
}
哪一部分比较难?您只需创建一个文件路径数组,然后将其传递到菜单。是否可以通过代码获取最近的文件夹历史记录?谢谢~它工作正常
//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]);
}