diff options
| author | Zach Hilman <zachhilman@gmail.com> | 2018-09-19 21:54:14 -0400 |
|---|---|---|
| committer | Zach Hilman <zachhilman@gmail.com> | 2018-09-21 19:53:05 -0400 |
| commit | df19124e6d336e9a1cdf442ecd9c75c29b741b44 (patch) | |
| tree | a3a84cdbe3dead1399c8c6d4bdf5c2c394be5b73 /src/core/file_sys/vfs_real.cpp | |
| parent | 2f2bd3b952c568692134a4db98d26edf0262ac2c (diff) | |
vfs: Add GetEntries method
Maps name string to directory or file.
Diffstat (limited to 'src/core/file_sys/vfs_real.cpp')
| -rw-r--r-- | src/core/file_sys/vfs_real.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/file_sys/vfs_real.cpp b/src/core/file_sys/vfs_real.cpp index 5e242e20fc..a58a02de7d 100644 --- a/src/core/file_sys/vfs_real.cpp +++ b/src/core/file_sys/vfs_real.cpp @@ -413,6 +413,23 @@ std::string RealVfsDirectory::GetFullPath() const { return out; } +std::map<std::string, VfsEntryType> RealVfsDirectory::GetEntries() const { + if (perms == Mode::Append) + return {}; + + std::map<std::string, VfsEntryType> out; + FileUtil::ForeachDirectoryEntry( + nullptr, path, + [&out](u64* entries_out, const std::string& directory, const std::string& filename) { + const std::string full_path = directory + DIR_SEP + filename; + out.emplace(filename, FileUtil::IsDirectory(full_path) ? VfsEntryType::Directory + : VfsEntryType::File); + return true; + }); + + return out; +} + bool RealVfsDirectory::ReplaceFileWithSubdirectory(VirtualFile file, VirtualDir dir) { return false; } |
