我想基于finder中的某些条件为徽章文件和文件夹着色,在Mac OS X 10.6中实现此目的的方法是什么
我已经检查了这个问题:这只是在finder中讨论上下文菜单 Finder Plugin in Snow Leopard
我甚至检查过:http://scplugin.tigris.org/即使他们没有在待处理任务的10.6中做颜色标记。
提前感谢您的帮助
答案 0 :(得分:10)
您可以使用Mac OS X 10.6中引入的URL资源API。
NSURL* fileURL = [NSURL fileURLWithPath:@"/Path/to/file"];
id labelValue = nil;
NSError* error;
if([fileURL getResourceValue:&labelValue forKey:NSURLLabelNumberKey error:&error])
{
NSLog(@"The label value is %@",labelValue);
}
else
{
NSLog(@"An error occurred: %@",[error localizedDescription]);
}
您可以同时使用NSURLLabelNumberKey
获取Finder指定标签的编号,或使用NSURLLabelColorKey
获取实际颜色。
您可以使用相应的方法设置标签值:
- (BOOL)setResourceValue:(id)value forKey:(NSString *)key error:(NSError **)error
答案 1 :(得分:3)
对于任何仍需要答案的人,你可以去。
NSURL *fileURL = [NSURL fileURLWithPath:path_to_file];
NSError *error;
id labelColor = nil;
[fileURL setResourceValue:@2 forKey:NSURLLabelNumberKey error:&error]; //Set tag/label to green
[fileURL setResourceValue:@6 forKey:NSURLLabelNumberKey error:&error]; //Set tag/label to red
Garrett Hyde的订单正确。
// 0 none, 1 grey, 2 green, 3 purple, 4 blue, 5 yellow, 6 red, 7 orange
上述代码已使用Xcode 4.6.3和OSX 10.9.2 Mavericks进行测试。
答案 2 :(得分:1)
不幸的是,没有公共API。您需要在Finder中注入代码并对其进行修补。
在10.6之前,只需使用InputManager
s就可以很容易地将代码注入Cocoa应用程序。这已不再适用,但您可以使用OSAX
执行此操作,请参阅this blog post。 SIMBL
会自动执行此操作。
但是你必须弄清楚Finder
里面发生了什么,看看如何修补东西。
要探索Finder
的内部,F-Script anywhere会对您有所帮助。
玩得开心,祝你好运!
答案 3 :(得分:1)
你需要AppleScript。因此,您可以使用脚本桥或NSApplescript在cocoa中编写Finder脚本。这是一个简单的AppleScript,展示了如何做到这一点。
set a to (choose file)
tell application "Finder"
-- label colors
-- 0 none, 1 orange, 2 red, 3 yellow, 4 blue, 5 purple, 6 green, 7 grey
set label index of a to 6
end tell
答案 4 :(得分:0)
我认为NSURLLabelNumberKey
值是:
// 0 none, 1 grey, 2 green, 3 purple, 4 blue, 5 yellow, 6 red, 7 orange