2011-04-19 12 views
5

Así que trato de crear algún tipo de navegador de archivos. y quiero saber si file under path es ejecutable (crossplatform). ¿Cómo hacer tal cosa con boost :: filesystem?cómo saber si la ruta conduce a un archivo ejecutable?

+0

Por favor, dejen de poner etiquetas en los títulos de sus preguntas. –

Respuesta

3

Boost doesn't have stuff about permissions, porque los permisos POSIX no son "crossplatform".

Utilice las API específicas de la plataforma a su disposición según sea necesario. ¡Lo siento!

+0

¿podría proporcionar muestras de "código" para evitarlo? – Rella

+1

[POSIX] (http://pwet.fr/man/linux/fonctions_bibliotheques/posix/access)/[Windows] (http://stackoverflow.com/questions/3449465/find-the-permissions-of-a- archivo-en-ventanas) –

1

Puede probar QT. Es multiplataforma. No tiene que preocuparse por las diferencias del sistema operativo al tratar con archivos. Lo que quiere decir con "ejecutable" de alguna manera no está claro. Si está hablando de permisos de archivos, OT puede proporcionar este tipo de información (basta con consultar la documentación de la clase QFile). Si desea saber si puede ejecutarlo o no, debe tener algún tipo de convención de extensión de archivos. Por ejemplo, .exe en Windows. No sé, puede haber una manera de ver los bits iniciales del archivo y saber si es un archivo binario o no, pero creo que no podrá encontrar una convocatoria de biblioteca para eso. Tienes que implementar algunas rutinas específicas de la plataforma para esto. Si no me equivoco, los buscadores de archivos principalmente miran la extensión del archivo para encontrar el tipo. Por ejemplo, si cambia la extensión de archivo de un pdf a exe, Windows Explorer considera que este archivo es ejecutable. Claramente después de la suposición del tipo de archivo, puede intentar aprender otras cosas sobre el archivo, como el icono del ejecutable. Pero inicialmente solo mira la extensión. De lo contrario, sería muy lento navegar directorios que contienen grandes cantidades de archivos.

Espero, he proporcionado información relevante aquí

Cuestiones relacionadas