在 Cocoa 中,我如何测试文件是否为可执行二进制文件?不幸的是,[NSFileManager isExecutableFileAtPath:] 也将为脚本和目录返回 true,几乎任何设置了可执行位的文件都不是我想要的。
虽然直接在 Cocoa 中执行此操作是我的首选方法,但我可以轻松将其包装在 NSTask 中的 Bash 解决方案就足够了。
最佳答案
您可以在代码中轻松过滤出目录,但要知道什么是二进制文件而什么不是二进制文件有点困难,因为有效地,唯一的方法是打开文件并读取它,这是您需要自己做的事情.
然而,主要问题是什么应该被视为二进制文件。
我见过开头有十几个文本行的可执行文件(因此,实际上它们是脚本),但其余部分都是二进制文件。您如何对它们进行分类?
如果您可以根据它们的加载方式对它们进行分类,您可以尝试命令 file
,它会尽可能准确地告诉您文件是什么。
关于 cocoa 或 Bash : Test if a file is an executable binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906541/