2012-03-07 275 views
2

我有一个更多目录的目录。它们按“标签”排序。Java中的Mac OS X Finder标签

我想在我的Java程序中使用它们。但如何获得文件的标签?

有没有图书馆?或者我必须通过JNA/JNI写smth?或者也许是一个Applescript桥梁?

简而言之:如何在Mac OS X中获取文件的标签?

+0

出于好奇,为什么这是downvoted?看起来像一个合法的问题:'我可以使用Java进行本地系统调用来获取HFS文件系统上文件的标签吗?' – 2012-03-07 19:14:57

回答

0

使用xattr命令行工具获取相关文件的元数据。

如果该文件有一个标签,将有看起来像这样的属性:

com.apple.metadata:kMDLabel_qygkxhrfarhtxanqhi264amkku

然后,您可以在标签字符串与标签的颜色相关联。

编辑 我相信osascript可能会提供一个更简单的接口来获取/设置文件的扩展元数据。

Tagging files with colors in OS X Finder from shell scripts

+0

是唯一的方法吗?如果“文件”是一个目录,它也不会显示任何元数据。然后出现“com.apple.FinderInfo”。 – Zarathustra 2012-03-07 20:40:00

0

对于10.6及以上的,可以使用NSURL实例方法。

- (BOOL)getResourceValue:(id *)value forKey:(NSString *)key error:(NSError **)error 

- (BOOL)setResourceValue:(id)value forKey:(NSString *)key error:(NSError **)error

NSURLLabelNumberKeyNSURLLabelColorKey

对于10.5,请使用苹果脚本。

+0

这听起来不错,但你能给我一个更扩展的代码示例吗? :) – Zarathustra 2012-03-17 10:10:40

+0

这回答了如何在Objective C中完成它,但不是Java。 – pndc 2016-04-25 08:11:49