summaryrefslogtreecommitdiff
path: root/tools/slang-test/directory-util.cpp
blob: 39d06a2a20a6e7087528a55c8f396373ab66f945 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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<Slang::String>& 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<Slang::String>& 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<Slang::String>& outPaths)
{
    return findFilesMatchingPattern(directoryPath, nullptr, outPaths);
}