From 3231048b328551edff9a923dec3f7bd46ed5aff8 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Wed, 5 Aug 2020 16:12:55 -0400 Subject: Refactor enumerating directory contents (#1478) * Use m_style for OSFindFilesResult * Refactor of FindFilesResult. * Fixes on linux for FindFiles. * Simplify FindFilesState, and linux support for pattern matching. * Small fixes to linux FindFilesState * Fix typo on linux FindFiles * Fix typo in linux FindFiles. * Renamed some variables, and improved comments on FindFiles. * Improve comments on FildFiles * Small improvements around FindFiles. * Refactor FindFiles again.. into a visitor and function in Path. * Fix some problems on linux. * Fix linux typo. * Renamed os -> find-file-util * find-file-utl -> directory-util Co-authored-by: Tim Foley --- tools/slang-test/directory-util.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tools/slang-test/directory-util.cpp (limited to 'tools/slang-test/directory-util.cpp') diff --git a/tools/slang-test/directory-util.cpp b/tools/slang-test/directory-util.cpp new file mode 100644 index 000000000..39d06a2a2 --- /dev/null +++ b/tools/slang-test/directory-util.cpp @@ -0,0 +1,29 @@ +// find-file-util.cpp +#include "directory-util.h" + +#include "slang-com-helper.h" + +using namespace Slang; + +/* static */SlangResult DirectoryUtil::findDirectories(const Slang::String& directoryPath, Slang::List& outPaths) +{ + outPaths.clear(); + CombinePathVisitor visitor(directoryPath, Path::TypeFlag::Directory); + SLANG_RETURN_ON_FAIL(Path::find(directoryPath, nullptr, &visitor)); + outPaths.swapWith(visitor.m_paths); + return SLANG_OK; +} + +/* static */SlangResult DirectoryUtil::findFilesMatchingPattern(const Slang::String& directoryPath, const char* pattern, Slang::List& outPaths) +{ + outPaths.clear(); + CombinePathVisitor visitor(directoryPath, Path::TypeFlag::File); + SLANG_RETURN_ON_FAIL(Path::find(directoryPath, pattern, &visitor)); + outPaths.swapWith(visitor.m_paths); + return SLANG_OK; +} + +/* static */SlangResult DirectoryUtil::findFiles(const Slang::String& directoryPath, Slang::List& outPaths) +{ + return findFilesMatchingPattern(directoryPath, nullptr, outPaths); +} -- cgit v1.2.3