2012-12-02 11 views
6

Ich brauche eine leichte plattformübergreifende Dateisystembibliothek für die Spieleentwicklung. Ich möchte meine Spiele unter Windows, Linux und Mac versenden.Gibt es eine leichtgewichtige plattformübergreifende C++ - Dateisystembibliothek?

Soweit ich weiß, funktioniert mit dirent.h auf allen drei Plattformen. Ich wollte jedoch wissen, ob es eine einfachere Bibliothek gibt - die direkte Verwendung von Dirent war für mich verwirrend und ich kam nirgendwohin.

Ich habe auch Boost versucht, aber ich mag nicht die Tatsache, dass es nicht leicht ist und es mir Probleme auf Unix-Ports meines Spiels gab.

Merkmale I erfordern, sind:

  • Recursively lesen Verzeichnisbäume
  • Erhalten Sie alle Dateien in einem Verzeichnis
  • alle Unterverzeichnisse in einem Verzeichnis
  • Get
+0

Sind Sie über die Bibliothek zu stellen, die einen leichteren Zugang zu den vorhandenen Dateisystem oder über die Bibliothek bereitstellt, die ein Dateisystem implementiert (Container)? –

+0

@ EugeneMayevski'EldoSCorp Ich frage nach einer Bibliothek, die mir hilft, vorhandene Verzeichnisse/Dateien auf der Festplatte zu bekommen. Zum Beispiel möchte ich alle. Png-Dateien in "C:/MyGame/Data/Images" ohne viel Aufwand erhalten. –

+0

Haben Sie Ihr GUI-Framework überprüft (Sie schreiben gerade ein Spiel, oder?)? Manchmal neigen sie dazu, zusätzliche Sachen wie Dateisystem-API einzubeziehen. –

Antwort

0

Ich habe meine erstellt Eigene Dateisystembibliothek (getestet unter Windows und Linux, beide mit GCC und Clang).

Sie können es in der SSVUtils Bibliothek finden: https://github.com/SuperV1234/SSVUtils

SSVUtils hat keine externen Abhängigkeiten.

Beispiel Nutzung:

log("Getting all page.json files", "loadPages"); 

string pagesPath("Json/Pages/"); 
vector<string> pageJsonPaths{getScan<Mode::Recurse, Type::File, Pick::ByName>(pagesPath, "page.json")}; 
Verwandte Themen