refactor
This commit is contained in:
parent
4c97f6b098
commit
9a1483377c
@ -45,11 +45,14 @@ auto get_directory_files(std::string_view path, bool oldest_first,
|
||||
auto full_path = utils::path::combine(abs_path, {fd.cFileName});
|
||||
if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ==
|
||||
FILE_ATTRIBUTE_DIRECTORY) {
|
||||
if (recursive) {
|
||||
auto sub_files =
|
||||
get_directory_files(full_path, oldest_first, recursive);
|
||||
ret.insert(ret.end(), sub_files.begin(), sub_files.end());
|
||||
std::string name{fd.cFileName};
|
||||
if (name == "." || name == ".." || not recursive) {
|
||||
continue;
|
||||
}
|
||||
|
||||
auto sub_files =
|
||||
get_directory_files(full_path, oldest_first, recursive);
|
||||
ret.insert(ret.end(), sub_files.begin(), sub_files.end());
|
||||
} else {
|
||||
ULARGE_INTEGER li{};
|
||||
li.HighPart = fd.ftLastWriteTime.dwHighDateTime;
|
||||
@ -75,14 +78,16 @@ auto get_directory_files(std::string_view path, bool oldest_first,
|
||||
struct dirent *de{};
|
||||
while ((de = readdir(root)) != nullptr) {
|
||||
if (de->d_type == DT_DIR) {
|
||||
if (recursive) {
|
||||
auto sub_files = get_directory_files(
|
||||
utils::path::combine(abs_path, {de->d_name}), oldest_first,
|
||||
recursive);
|
||||
ret.insert(ret.end(), sub_files.begin(), sub_files.end());
|
||||
std::string name{de->d_name};
|
||||
if (name == "." || name == ".." || not recursive) {
|
||||
continue;
|
||||
}
|
||||
|
||||
auto sub_files = get_directory_files(
|
||||
utils::path::combine(abs_path, {name}), oldest_first, recursive);
|
||||
ret.insert(ret.end(), sub_files.begin(), sub_files.end());
|
||||
} else {
|
||||
ret.emplace_back(utils::path::combine(abs_path, {de->d_name}));
|
||||
ret.emplace_back(utils::path::combine(abs_path, {name}));
|
||||
}
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user