DirectoryEntries FileSystem::listDirectory (const std::string& basedir, const std::string& subdir) const { #if DIRLIST_NOT_SUPPORTED return Singleton<GameRegistry>::getInstance().getGame()->listDirectory(basedir, subdir); #else DirectoryEntries entriesAll; const std::string sysWritePath = getAbsoluteWritePath() + basedir; if (!sysWritePath.empty()) entriesAll = System.listDirectory(sysWritePath, subdir); const std::string dataDir = getDataDir() + basedir; const DirectoryEntries entries = System.listDirectory(dataDir, subdir); for (const std::string& entry : entries) { entriesAll.push_back(entry); } std::sort(entriesAll.begin(), entriesAll.end()); entriesAll.erase(std::unique(entriesAll.begin(), entriesAll.end()), entriesAll.end()); return entriesAll; #endif }
DirectoryEntries FileSystem::listDirectory (const std::string& basedir, const std::string& subdir) { DirectoryEntries entriesAll; // TODO: register this in the app #if DIRLIST_NOT_SUPPORTED #include "dir.h" #endif const std::string sysWritePath = getAbsoluteWritePath() + basedir; if (!sysWritePath.empty()) entriesAll = System.listDirectory(sysWritePath, subdir); const std::string dataDir = getDataDir() + basedir; const DirectoryEntries entries = System.listDirectory(dataDir, subdir); for (DirectoryEntriesIter i = entries.begin(); i != entries.end(); ++i) { entriesAll.push_back(*i); } std::sort(entriesAll.begin(), entriesAll.end()); entriesAll.erase(std::unique(entriesAll.begin(), entriesAll.end()), entriesAll.end()); return entriesAll; }