objective-c - 如何在 Mac 上以编程方式访问文件信息?

标签 objective-c macos swift

设置:

我的新 Mac (Yosemite) 上有一堆音频文件。当我右键单击任何文件并执行“获取信息”时,它会在“更多信息”标签下为我提供有关该歌曲的详细信息,例如

enter image description here

目标:

我需要编写一个可以列出目录中所有歌曲的程序:

Album, Title, Year Recorded
.
.
.

问题:

我不知道该怎么做。我完全不熟悉 Mac 和 Objective-C/Swift(Objective-CSwift 是我会的我想必须用它来编写这个程序??)

是否有 API 可以让我以编程方式访问此文件信息?还有其他语言可以用来编写这种程序吗?我已经知道的东西,比如 JavaPython 等?

目前我还没有任何代码来显示“到目前为止我尝试过的内容”,因为我仍在寻找起点。任何指针将不胜感激。

最佳答案

如您所见,mdls 命令可以提供此元数据。您不应该尝试解析它。相反,您可以使用构建它所基于的相同 API。

您需要为感兴趣的文件获取 NSURL。然后,您可以获得其元数据属性的字典,如下所示:

MDItemRef item = MDItemCreateWithURL(NULL, (__bridge CFURLRef)url);
NSArray* names = @[ (__bridge NSString*)kMDItemAlbum, /* ... */ ];
NSDictionary* dictionary = CFBridgingRelease(MDItemCopyAttributes(item, (__bridge CFArrayRef)names));
CFRelease(item);

现在,dictionary 包含所需的属性。

关于objective-c - 如何在 Mac 上以编程方式访问文件信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641554/

相关文章:

swift - 在搜索栏中使用搜索后如何保存复选标记?

swift - CGPath 的 PhysicsEditor 多边形路径

ios - 使用优先级过滤对象数组

ios - 用 CAShapeLayer 实现绘制渐变圆弧

objective-c - 可以在 Objective C 中调用属性的释放吗?

ios - 如何在我的代码中实现反调试?

python - 在 Python 3.3 venv (OS X/Homebrew) 中安装 distribute

objective-c - 为什么在预设为 640x480 时使用 AVFoundation 捕获图像会给我 480x640 图像?

macos - 如何在 NSTextField 中添加 Cocoa 控件?

macos - 通过终端或 AppleScript 以编程方式更改 OSX 键盘布局 ("input source")?