2012-05-13 10 views
5

Qualcuno ha mai incontrato una buona libreria di virtualizzazione di file system che soddisfi questi requisiti?Libreria VFS portatile C++

  • piattaforma Croce: almeno Win32 e Linux, preferibilmente anche OSX
  • Supporto per protocolli:
    • SMB
    • FTP
    • SFTP
    • FS locale
  • astratta Interfaccia C++ con un factory client basato su un URL:
    • smb: // [utente [: password] @] host/share/percorso ...
    • ftp: // [utente [: password] @] host/percorso ...
    • sftp: // [utente [: password] @] host/percorso ...
    • file: // percorso ...
  • fornire metodi per:
    • elencando una directory, preferibilmente tornano le voci con struct attributi stat-like
    • Move
    • Copia
    • Rimuovere
    • Stat
    • Bonus: basso livello di interfaccia di accesso ai file (aprire, leggere, scrivere, vicino, ...)

Ho visto alcune buone biblioteche che soddisfano un sottoinsieme di questi requisiti (curl per FTP, libssh per SFTP, per nominarne alcuni), ma nessuno ancora fa tutto. C'è un forte impulso per un fai-da-te, ma non posso immaginare che non esiste già.

+1

Stai chiedendo molto ... esp. quando si tratta di cose cross-platform. –

risposta

3

È implementato in C, non in C++, ma sono abbastanza sicuro che lo GIO supporti la maggior parte di questo. Questa è la parte del progetto GNOME ed è usata dalla maggior parte delle applicazioni GNOME come un'astrazione del file system.

+0

Grazie Celada. Pensi che GIO sarebbe completamente funzionale su Windows, in particolare la parte gvfs? – Pat

+0

Ho i miei dubbi sul fatto che siano riusciti a implementare la parte in cui il filesystem virtuale è montato nel filesystem reale ma immagino che dovresti almeno essere in grado di utilizzare pienamente l'interfaccia di alto livello nativa GIO (in cui i file sono identificati dagli URL). Ma non posso esserne sicuro, non l'ho usato in Windows. In un modo o nell'altro, qualunque sia la gente comune * sono * riuscita a fare, dubito che qualcun altro abbia fatto di meglio. – Celada