Пытаюсь создать какой-нибудь файловый браузер. Я хочу знать, является ли файл по пути исполняемым кроссплатформенным способом.
Как это сделать с boost :: filesystem?
Пытаюсь создать какой-нибудь файловый браузер. Я хочу знать, является ли файл по пути исполняемым кроссплатформенным способом.
Как это сделать с boost :: filesystem?
Boost не имеет сведений о разрешениях, потому что разрешения POSIX не являются «кроссплатформенными».
При необходимости используйте имеющиеся в вашем распоряжении API-интерфейсы для конкретных платформ. Извините!
Вы можете попробовать QT. Это кроссплатформенный. Вам не нужно беспокоиться о различиях операционных систем при работе с файлами. Что вы подразумеваете под «исполняемым файлом», почему-то непонятно. Если вы говорите о правах доступа к файлам, OT может предоставить такую информацию (просто посмотрите документацию класса QFile). Если вы хотите узнать, можете ли вы его запустить или нет, у вас должно быть какое-то соглашение о расширении файлов. Например, .exe в Windows. Я не знаю, может быть, есть способ посмотреть на начальные биты файла и узнать, является ли он двоичным или нет, но я думаю, что вы не сможете найти для этого вызов библиотеки. Для этого вам необходимо реализовать некоторые процедуры, специфичные для платформы. Если я не ошибаюсь, файловые браузеры в основном смотрят на расширение файла, чтобы узнать его тип. Например, если вы измените расширение файла PDF на exe, проводник Windows увидит этот файл как исполняемый файл. Очевидно, что после предположения о типе файла он может попытаться узнать некоторые другие вещи о файле, например, значок исполняемого файла. Но изначально он смотрит только на расширение. В противном случае просмотр каталогов, содержащих большое количество файлов, будет очень медленным.
Надеюсь, я дал здесь некоторую актуальную информацию