Enum Functions
unknown
c_cpp
2 years ago
2.2 kB
12
Indexable
bool isWhiteListedFolder(const std::string& str)
{
for (const auto& excludedFolder : whiteListFolders)
{
if (str.find(excludedFolder) != std::string::npos)
{
return true;
}
}
return false;
}
bool isIgnoredExtension(std::string extension)
{
for (auto& ignored : whiteExts)
{
if (ignored == extension)
{
return true;
}
}
return false;
}
std::vector<std::string> FileIO::EFiles(const std::string& dir_path)
{
WIN32_FIND_DATAA file_data;
HANDLE hfind;
std::vector<std::string> files;
std::string path = dir_path + "\\*";
hfind = FindFirstFileA(path.c_str(), &file_data);
if (hfind != INVALID_HANDLE_VALUE)
{
do
{
std::string full_path = dir_path + "\\" + file_data.cFileName;
if (file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (strcmp(file_data.cFileName, ".") != 0 && strcmp(file_data.cFileName, "..") != 0)
{
if (isWhiteListedFolder(full_path) != false)
{
std::cout << "[i] Skipped Folder: " << full_path << std::endl;
}
else
{
std::vector<std::string> sub_files = EFiles(full_path);
files.insert(
files.end(),
sub_files.begin(),
sub_files.end()
);
}
}
}
else
{
std::string extension = full_path.substr(full_path.find_last_of("."));
if (!isIgnoredExtension(extension) {
files.push_back(full_path);
}
else {
std::cout << "[i] Skipped File: " << file_data.cFileName << std::endl;;
}
}
}
while (FindNextFileA(hfind, &file_data));
FindClose(hfind);
}
return files;
}Editor is loading...