From 6636ca79cfe9ad22fe30f5a6c1ca7d2e8d738ac1 Mon Sep 17 00:00:00 2001 From: nivaturimika <159065448+Nivaturimika@users.noreply.github.com> Date: Tue, 9 Apr 2024 08:56:51 +0100 Subject: [PATCH] Speedup file listing on windows --- src/filesystem/simple_fs_win.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/filesystem/simple_fs_win.cpp b/src/filesystem/simple_fs_win.cpp index 95dd5ca76..c084e5157 100644 --- a/src/filesystem/simple_fs_win.cpp +++ b/src/filesystem/simple_fs_win.cpp @@ -163,7 +163,7 @@ std::vector list_files(directory const& dir, native_char const* e } WIN32_FIND_DATAW find_result; - auto find_handle = FindFirstFileW(appended_path.c_str(), &find_result); + auto find_handle = FindFirstFileExW(appended_path.c_str(), FindExInfoBasic, &find_result, FindExSearchNameMatch, NULL, FIND_FIRST_EX_LARGE_FETCH); if(find_handle != INVALID_HANDLE_VALUE) { do { if(!(find_result.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !impl::contains_non_ascii(find_result.cFileName)) { @@ -183,7 +183,7 @@ std::vector list_files(directory const& dir, native_char const* e } else { auto const appended_path = dir.relative_path + NATIVE("\\*") + extension; WIN32_FIND_DATAW find_result; - auto find_handle = FindFirstFileW(appended_path.c_str(), &find_result); + auto find_handle = FindFirstFileExW(appended_path.c_str(), FindExInfoBasic, &find_result, FindExSearchNameMatch, NULL, FIND_FIRST_EX_LARGE_FETCH); if(find_handle != INVALID_HANDLE_VALUE) { do { if(!(find_result.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !impl::contains_non_ascii(find_result.cFileName)) { @@ -210,7 +210,7 @@ std::vector list_subdirectories(directory const& dir) { continue; } WIN32_FIND_DATAW find_result; - auto find_handle = FindFirstFileW(appended_path.c_str(), &find_result); + auto find_handle = FindFirstFileExW(appended_path.c_str(), FindExInfoBasic, &find_result, FindExSearchNameMatch, NULL, FIND_FIRST_EX_LARGE_FETCH); if(find_handle != INVALID_HANDLE_VALUE) { do { if((find_result.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !impl::contains_non_ascii(find_result.cFileName)) { @@ -228,7 +228,7 @@ std::vector list_subdirectories(directory const& dir) { } else { auto const appended_path = dir.relative_path + NATIVE("\\*"); WIN32_FIND_DATAW find_result; - auto find_handle = FindFirstFileW(appended_path.c_str(), &find_result); + auto find_handle = FindFirstFileExW(appended_path.c_str(), FindExInfoBasic, &find_result, FindExSearchNameMatch, NULL, FIND_FIRST_EX_LARGE_FETCH); if(find_handle != INVALID_HANDLE_VALUE) { do { if((find_result.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && !impl::contains_non_ascii(find_result.cFileName)) {