cocoa 或 Bash : Test if a file is an executable binary

标签 cocoa bash testing executable

在 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/

相关文章:

Bash:检查一个十进制数是否大于另一个十进制数

Facebook 测试使用同一个 ID 创建的用户,但查询返回不同的 ID

ruby - 在 Ruby 中加速 "sleep"

objective-c - 制作一个圆形的 NSSlide 外观和行为就像在 GarageBand 中一样

iphone - 关闭我的应用程序 (OSX) 后继续收到 "This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation."

objective-c - CALayer 中多页 TIFF NSImage 的自动缩放

java - 如何强制方法在 jUnit 测试中抛出异常?

cocoa - 将 NSArray 重新格式化为典型的 NSString

从 Bash 调用 Java 时无法执行二进制文件

git - tortoisegit = 致命的 : the remote end hung up unexpectedly but not with git bash