diff options
author | Andrei Karas <akaras@inbox.ru> | 2017-04-24 19:27:07 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2017-04-24 19:27:07 +0300 |
commit | 6f58d1ee37041da28562d09757a9f653109f5677 (patch) | |
tree | 494b990338727f2adfdc7d7c6e46558be696aa29 /src/fs/virtfs/virtfs.cpp | |
parent | d1b635ebf238fac5911fde8982d067ee4ffffe3a (diff) | |
download | manaverse-6f58d1ee37041da28562d09757a9f653109f5677.tar.gz manaverse-6f58d1ee37041da28562d09757a9f653109f5677.tar.bz2 manaverse-6f58d1ee37041da28562d09757a9f653109f5677.tar.xz manaverse-6f58d1ee37041da28562d09757a9f653109f5677.zip |
Improve VirtFs::getFilesWithDir.
Diffstat (limited to 'src/fs/virtfs/virtfs.cpp')
-rw-r--r-- | src/fs/virtfs/virtfs.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/fs/virtfs/virtfs.cpp b/src/fs/virtfs/virtfs.cpp index b4807afe7..1f7bde683 100644 --- a/src/fs/virtfs/virtfs.cpp +++ b/src/fs/virtfs/virtfs.cpp @@ -183,6 +183,29 @@ namespace VirtFs } } + void getFilesWithDir(std::string dirName, + StringVect &list) + { + prepareFsPath(dirName); + if (checkPath(dirName) == false) + { + reportAlways("VirtFs::enumerateFiles invalid path: %s", + dirName.c_str()); + return; + } + + std::string rootDir = dirName; + if (findLast(rootDir, std::string(dirSeparator)) == false) + rootDir += dirSeparator; + + FOR_EACH (std::vector<VirtFsEntry*>::const_iterator, it, mEntries) + { + VirtFsEntry *const entry = *it; + entry->funcs->getFilesWithDir(entry, rootDir, list); + } + } + + void getDirs(std::string dirName, StringVect &list) { |