我尝试创建某种文件浏览器。我想知道路径下的文件是否可以跨平台方式执行。
如何用 boost::filesystem 做这样的事情?
我尝试创建某种文件浏览器。我想知道路径下的文件是否可以跨平台方式执行。
如何用 boost::filesystem 做这样的事情?
Boost没有关于权限的东西,因为 POSIX 权限不是“跨平台”的。
根据需要使用您可以随意使用的特定于平台的 API。对不起!
你可以试试QT。它是跨平台的。在处理文件时,您不必关心操作系统的差异。不过,您所说的“可执行”是什么意思尚不清楚。如果您在谈论文件权限,OT 可以提供此类信息(只需查看 QFile 类文档)。如果您想了解是否可以实际运行它,则必须有某种文件扩展名约定。例如,Windows 中的 .exe。我不知道,可能有一种方法可以查看文件的初始位并了解它是否是二进制文件,但我认为您将无法找到为此的库调用。您必须为此实现一些特定于平台的例程。如果我没记错的话,文件浏览器大多会查看文件的扩展名来找出类型。例如,如果您将 pdf 的文件扩展名更改为 exe,则 Windows 资源管理器将此文件视为可执行文件。显然在文件类型假设之后,它可以尝试了解文件的一些其他内容,例如可执行文件的图标。但最初它只查看扩展名。否则,浏览包含大量文件的目录会很慢。
我希望,我在这里提供了一些相关信息