2012-12-02 11 views
6

Ho bisogno di una libreria di file system multipiattaforma leggera per lo sviluppo di giochi. Voglio spedire i miei giochi su Windows, Linux e Mac.Esiste una libreria di file system leggera multipiattaforma C++?

Per quanto ne so, l'utilizzo di dirent.h funziona su tutte e tre le piattaforme. Tuttavia, volevo sapere se esiste una libreria che è più semplice da usare, usare direttamente dirent è stato per me fonte di confusione e non ho ottenuto nulla.

Ho provato anche Boost, ma non mi piace il fatto che non sia leggero e mi ha dato problemi sulle porte Unix del mio gioco.

Caratteristiche richiedo sono:

  • alberi di directory ricorsivamente leggere
  • Prendi tutti i file in una directory
  • Ottenere tutte le sottodirectory in una directory
+0

Stai chiedendo circa la libreria che fornisce un più facile accesso al file system esistente o la libreria che implementa un file system (contenitore)? –

+0

@ EugeneMayevski'EldoSCorp Chiedo informazioni su una libreria che mi aiuti a recuperare directory/file esistenti nel disco rigido. Ad esempio, voglio ottenere tutti i file .png in "C:/MyGame/Data/Images" senza troppi problemi. –

+0

Hai controllato il tuo framework GUI (stai scrivendo un gioco, vero?)? A volte tendono ad includere cose extra come API di filesystem. –

risposta

0

ho creato il mio propria libreria di file system (testata su Windows e Linux, entrambi con GCC e Clang).

Lo si può trovare nella biblioteca SSVUtils: https://github.com/SuperV1234/SSVUtils

SSVUtils ha dipendenze esterne.

Esempio di utilizzo:

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

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