我有一个更多目录的目录。它们按“标签”排序。Java中的Mac OS X Finder标签
我想在我的Java程序中使用它们。但如何获得文件的标签?
有没有图书馆?或者我必须通过JNA/JNI写smth?或者也许是一个Applescript桥梁?
简而言之:如何在Mac OS X中获取文件的标签?
我有一个更多目录的目录。它们按“标签”排序。Java中的Mac OS X Finder标签
我想在我的Java程序中使用它们。但如何获得文件的标签?
有没有图书馆?或者我必须通过JNA/JNI写smth?或者也许是一个Applescript桥梁?
简而言之:如何在Mac OS X中获取文件的标签?
使用xattr命令行工具获取相关文件的元数据。
如果该文件有一个标签,将有看起来像这样的属性:
com.apple.metadata:kMDLabel_qygkxhrfarhtxanqhi264amkku
然后,您可以在标签字符串与标签的颜色相关联。
编辑 我相信osascript可能会提供一个更简单的接口来获取/设置文件的扩展元数据。
见Tagging files with colors in OS X Finder from shell scripts
是唯一的方法吗?如果“文件”是一个目录,它也不会显示任何元数据。然后出现“com.apple.FinderInfo”。 – Zarathustra 2012-03-07 20:40:00
对于10.6
及以上的,可以使用NSURL实例方法。
- (BOOL)getResourceValue:(id *)value forKey:(NSString *)key error:(NSError **)error
和
- (BOOL)setResourceValue:(id)value forKey:(NSString *)key error:(NSError **)error
与NSURLLabelNumberKey
或NSURLLabelColorKey
。
对于10.5
,请使用苹果脚本。
这听起来不错,但你能给我一个更扩展的代码示例吗? :) – Zarathustra 2012-03-17 10:10:40
这回答了如何在Objective C中完成它,但不是Java。 – pndc 2016-04-25 08:11:49
出于好奇,为什么这是downvoted?看起来像一个合法的问题:'我可以使用Java进行本地系统调用来获取HFS文件系统上文件的标签吗?' – 2012-03-07 19:14:57