Java中的Mac OS X Finder标签

3

我有一个包含多个目录的文件夹,它们按“标签”排序。

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

有没有相关的库可以使用?还是必须通过JNA/JNI编写代码?或者可以使用Applescript-Bridge吗?

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


1
出于好奇,为什么这个被踩了?看起来是一个合理的问题:我能使用Java来进行本地系统调用以获取HFS文件系统上文件的标签吗? - Michael Stum
2个回答

2
使用xattr命令行工具获取相关文件的元数据。
如果该文件有标签,将会有一个类似于以下内容的属性:

com.apple.metadata:kMDLabel_qygkxhrfarhtxanqhi264amkku

您可以将标签字符串与标签颜色相关联。
编辑:我相信osascript可能提供更容易的接口来获取/设置文件的扩展元数据。
请参见在OS X Finder中使用shell脚本为文件打标签

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

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,请使用Apple脚本。


这听起来不错,但你能给我一个更详细的代码示例吗? :) - Zarathustra
这回答了如何在Objective C中完成,但并未涉及Java。 - pndc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接