aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Files.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-11-29 18:08:00 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2016-11-29 18:08:00 -0800
commit0b996a002ec6d90d8a132e7603553b60b332c9fe (patch)
tree2d874f10e7b196643f59b06ec424c44a762b5e66 /toolsrc/src/vcpkg_Files.cpp
parent0da18a3d53cebe3e4664c260604a01703f06157b (diff)
downloadvcpkg-0b996a002ec6d90d8a132e7603553b60b332c9fe.tar.gz
vcpkg-0b996a002ec6d90d8a132e7603553b60b332c9fe.zip
[Files] Add functions to get all files of a dir recursively or non-recursively
Diffstat (limited to 'toolsrc/src/vcpkg_Files.cpp')
-rw-r--r--toolsrc/src/vcpkg_Files.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg_Files.cpp b/toolsrc/src/vcpkg_Files.cpp
index 42e815cc2..bb34915d7 100644
--- a/toolsrc/src/vcpkg_Files.cpp
+++ b/toolsrc/src/vcpkg_Files.cpp
@@ -73,4 +73,34 @@ namespace vcpkg {namespace Files
recursive_find_files_with_extension_in_dir(dir, extension, &v);
return v;
}
+
+ void recursive_find_all_files_in_dir(const fs::path& dir, std::vector<fs::path>* output)
+ {
+ recursive_find_matching_paths_in_dir(dir, [&](const fs::path& current)
+ {
+ return !fs::is_directory(current);
+ }, output);
+ }
+
+ std::vector<fs::path> recursive_find_all_files_in_dir(const fs::path& dir)
+ {
+ std::vector<fs::path> v;
+ recursive_find_all_files_in_dir(dir, &v);
+ return v;
+ }
+
+ void non_recursive_find_all_files_in_dir(const fs::path& dir, std::vector<fs::path>* output)
+ {
+ non_recursive_find_matching_paths_in_dir(dir, [&](const fs::path& current)
+ {
+ return !fs::is_directory(current);
+ }, output);
+ }
+
+ std::vector<fs::path> non_recursive_find_all_files_in_dir(const fs::path& dir)
+ {
+ std::vector<fs::path> v;
+ non_recursive_find_all_files_in_dir(dir, &v);
+ return v;
+ }
}}