2012-05-13 19 views
5

¿Alguien ha encontrado alguna vez una buena biblioteca de virtualización del sistema de archivos que cumpla con estos requisitos?Biblioteca Portátil VFS C++

  • Multiplataforma: al menos Win32 y Linux, preferiblemente también OSX
  • Soporte para protocolos:
    • SMB
    • FTP
    • SFTP
    • FS local
  • Resumen Interfaz C++ con una fábrica de cliente basada en una URL:
    • SMB: // [usuario [: clave] @] host/share/ruta ...
    • ftp: // [usuario [: clave] @] host/path ...
    • SFTP: // [usuario [: clave] @] host/path ...
    • file: // ruta ...
  • proporcionar métodos para:
    • inclusión de un directorio, preferentemente regresan entradas con struct atributos similares a la estadística
    • Mover
    • Copia
    • Retire
    • Stat
    • Bono: interfaz de acceso a archivos de bajo nivel (abrir, leer, escribir, cerrar, ...)

he visto algunas buenas bibliotecas que cumplen con un subconjunto de estos requisitos (curl para FTP, libssh para SFTP, por nombrar algunos), pero aún ninguno lo hace todo. Hay una gran necesidad de bricolaje, pero no puedo imaginar que ya no exista.

+1

Estás pidiendo mucho ... esp. cuando se trata de cosas multiplataforma. –

Respuesta

3

Está implementado en C, no en C++, pero estoy bastante seguro de que GIO es compatible con la mayoría de eso. Esta es la parte del proyecto GNOME y es utilizada por la mayoría de las aplicaciones de GNOME como una abstracción del sistema de archivos.

+0

Gracias Celada. ¿Crees que GIO sería completamente funcional en Windows, especialmente en la parte de gvfs? – Pat

+0

Tengo mis dudas sobre si lograron implementar la parte donde el sistema de archivos virtual está montado en el sistema de archivos real, pero creo que al menos deberían poder utilizar completamente la interfaz de alto nivel nativa de GIO (donde los archivos están identificados por URLs) Pero no puedo estar seguro, no lo he usado en Windows. De una forma u otra, cualquiera que sea la gente superficial * que haya logrado hacer, dudo que alguien más haya hecho algo mejor. – Celada

Cuestiones relacionadas