2012-05-13 7 views
5

Hat jemals jemand eine gute Dateisystemvirtualisierungsbibliothek gefunden, die diese Anforderungen erfüllt?Portable VFS-Bibliothek C++

  • Plattformübergreifend: mindestens Win32 und Linux, OSX vorzugsweise auch
  • Unterstützung für Protokolle:
    • SMB
    • FTP
    • SFTP
    • Lokale FS
  • Zusammenfassung C++ - Schnittstelle mit einer Client Factory basierend auf einer URL:
    • smb: // [user [Passwort] @] host/share/path ...
    • ftp: // [user [Passwort] @] host/path ...
    • SFTP: // [user [Passwort] @] host/path ...
    • file: // Pfad ...
  • bieten Methoden für:
    • ein Verzeichnis, vorzugsweise Rückkehr Einträge mit struct Stat-ähnliche Attribute
    • Verschieben
    • Copy
    • entfernen
    • Stat
    • Bonus: geringe Dateizugriffsschnittstelle (öffnen, lesen, schreiben, in der Nähe, ...)

Ich habe einige gute Bibliotheken gesehen die eine Teilmenge dieser Anforderungen erfüllen (curl für FTP, libssh für SFTP, um nur ein paar zu nennen), aber noch keiner, der alles erledigt. Es gibt einen starken Drang nach einem DIY, aber ich kann mir nicht vorstellen, dass es nicht schon existiert.

+1

Sie verlangen viel ... esp. wenn es um das plattformübergreifende Zeug geht. –

Antwort

3

Es ist in C, nicht C++ implementiert, aber ich bin mir ziemlich sicher GIO unterstützt die meisten davon. Dies ist der Teil des GNOME-Projekts und wird von den meisten GNOME-Anwendungen als Dateisystemabstraktion verwendet.

+0

Danke Celada. Denkst du, GIO wäre unter Windows voll funktionsfähig, besonders der gvfs-Teil? – Pat

+0

Ich habe meine Zweifel, ob sie es geschafft haben, den Teil zu implementieren, in dem das virtuelle Dateisystem im realen Dateisystem eingebunden ist, aber ich denke, Sie sollten zumindest die native High-Level-Schnittstelle von GIO voll nutzen können (wobei Dateien durch URLs identifiziert werden)). Aber ich kann nicht sicher sein, ich habe es nicht in Windows verwendet. Auf die eine oder andere Art und Weise, egal was die glitschigen Leute * geschafft haben, ich bezweifle, dass jemand anderes es besser gemacht hat. – Celada