Как проверить, ведет ли путь к исполняемому файлу? - PullRequest
6 голосов
/ 19 апреля 2011

Я пытаюсь создать какой-то файловый браузер. Я хочу знать, является ли файл в пути исполняемым в кроссплатформенном виде

Как это сделать с boost :: filesystem?

Ответы [ 2 ]

4 голосов
/ 19 апреля 2011

Boost не имеет информации о разрешениях , поскольку разрешения POSIX не являются "кроссплатформенными".

При необходимости используйте API-интерфейсы платформ, имеющиеся в вашем распоряжении.Извините!

1 голос
/ 20 апреля 2011

Вы можете попробовать QT.Это кроссплатформенный.Вам не нужно заботиться о различиях операционной системы при работе с файлами.Что вы подразумеваете под «исполняемым», как-то неясно.Если вы говорите о правах доступа к файлам, OT может предоставить такую ​​информацию (просто посмотрите документацию класса QFile).Если вы хотите узнать, можете ли вы на самом деле запустить его или нет, вам нужно иметь какое-то соглашение о расширении файлов.Например, .exe в Windows.Я не знаю, может быть, есть способ посмотреть на начальные биты файла и узнать, является ли он двоичным или нет, но я думаю, что вы не сможете найти библиотечный вызов для этого.Вы должны реализовать некоторые специфичные для платформы подпрограммы для этого.Если я не ошибаюсь, файловые браузеры в основном смотрят на расширение файла, чтобы узнать его тип.Например, если вы измените расширение файла pdf на exe, то проводник Windows увидит этот файл как исполняемый файл.Очевидно, что после предположения о типе файла он может попытаться узнать некоторые другие сведения о файле, например значок исполняемого файла.Но изначально это только смотрит на расширение.В противном случае было бы очень медленно просматривать каталоги, содержащие большое количество файлов.

Надеюсь, я дал здесь соответствующую информацию

...