[filesystem] Moved generic methods to platform independent code
This commit is contained in:
committed by
Radosław Gliński
parent
753698ea20
commit
d90c320dda
@@ -24,5 +24,29 @@ bool CreateParentFolder(const std::filesystem::path& path) {
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<FileInfo> ListDirectories(const std::filesystem::path& path) {
|
||||
std::vector<FileInfo> files = ListFiles(path);
|
||||
std::vector<FileInfo> directories = {};
|
||||
|
||||
std::copy_if(files.cbegin(), files.cend(), std::back_inserter(directories),
|
||||
[](const FileInfo& file) {
|
||||
return file.type == FileInfo::Type::kDirectory;
|
||||
});
|
||||
|
||||
return std::move(directories);
|
||||
}
|
||||
|
||||
std::vector<FileInfo> FilterByName(const std::vector<FileInfo>& files,
|
||||
const std::regex pattern) {
|
||||
std::vector<FileInfo> filtered_entries = {};
|
||||
|
||||
std::copy_if(
|
||||
files.cbegin(), files.cend(), std::back_inserter(filtered_entries),
|
||||
[pattern](const FileInfo& file) {
|
||||
return std::regex_match(file.name.filename().string(), pattern);
|
||||
});
|
||||
return std::move(filtered_entries);
|
||||
}
|
||||
|
||||
} // namespace filesystem
|
||||
} // namespace xe
|
||||
|
||||
Reference in New Issue
Block a user