我目前正在使用C ++和Qt开发应用程序,我需要知道输入文件是否可执行。
我正在使用QFileInfo::isExecutable()
,它对大多数文件都有正确的行为,但扩展名为.msi
的文件除外,它返回false。
如何确定文件是否可执行?出于交叉兼容的原因,我需要在Qt中执行此操作。
答案 0 :(得分:5)
嗯,MSI文件实际上不可执行。它是Windows Installer可执行文件使用的文档格式。所以QFileInfo
是正确的。
您需要解决的具体问题是什么?为什么您认为知道文件是否可执行会对您有所帮助?你有什么目标?如果您向我们提供更多信息,我们可能会建议更好的方法。
答案 1 :(得分:3)
您应该知道QFileInfo::isExecutable()
如何将文件确定为可执行文件:
在Windows Qt中,只检查文件的扩展名是.exe
,.com
和.bat
,而不检查其内容。
在类Unix系统中,它会检查文件的属性,并对具有执行权限的文件返回true。
因此,.msi
文件不是Windows下Qt的可执行文件。