繁体   English   中英

以编程方式确定OSX上的文件内容类型

[英]Programmatically determine file content type on OSX

我正在处理其内容格式在OSX的多个版本中已更改的文件,以前是ASCII,然后是JSON,现在是二进制plist。 因此,我需要确定文件的类型,以便可以使用JSON API将其解析为文本,也可以将plist加载为字典/数组。

我可以使用/ usr / bin / file命令来告诉我文件内容类型,但是我更喜欢以编程方式执行此操作。 有可可的API吗?

我看过NSFileManager attributesOfItemAtPath:error:但这只是返回NSFileTypeRegular,这无济于事。

没有与文件匹配的Cocoa API。 有许多不同的可可(和CF)API处理“文件类型”,但它们混合使用了扩展名和经典Mac Finder信息,这不是您想要的。

正如H2CO3所建议的那样,您想要的是无聊的。 但是您需要BSD版本。 它是Fine Free File Command源的一部分,与OS X的内置file命令来自同一源,并且已获得BSD许可,并且更新频率更高。

您可以在http://www.darwinsys.com/file/上获得它,但也可以从Homebrew或MacPorts获得它。

这可能对您有帮助: http : //sourceforge.net/projects/libmagic/这是Linux上Libmagic的手册页。 由于这不是一个完全依赖于OS的库,因此即使不进行Mac修改也很可能可以正常工作。 参见http://linux.die.net/man/3/libmagic

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM