From f7b637143e68b41c92ba72fceb0b97ad621d8a41 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Thu, 31 Aug 2023 11:16:34 +0200 Subject: Use std::filesystem::directory_iterator in IndexReadUtilities --- .../searchcorespi/index/indexreadutilities.cpp | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'searchcore') diff --git a/searchcore/src/vespa/searchcorespi/index/indexreadutilities.cpp b/searchcore/src/vespa/searchcorespi/index/indexreadutilities.cpp index 14556ddef29..010a3174e1c 100644 --- a/searchcore/src/vespa/searchcorespi/index/indexreadutilities.cpp +++ b/searchcore/src/vespa/searchcorespi/index/indexreadutilities.cpp @@ -4,6 +4,7 @@ #include "indexdisklayout.h" #include #include +#include #include #include @@ -25,22 +26,21 @@ scanForIndexes(const vespalib::string &baseDir, std::vector &flushDirs, vespalib::string &fusionDir) { - FastOS_DirectoryScan dirScan(baseDir.c_str()); - while (dirScan.ReadNext()) { - if (!dirScan.IsDirectory()) { - continue; - } - vespalib::string name = dirScan.GetName(); - if (name.find(IndexDiskLayout::FlushDirPrefix) == 0) { - flushDirs.push_back(name); - } - if (name.find(IndexDiskLayout::FusionDirPrefix) == 0) { - if (!fusionDir.empty()) { - // Should never happen, since we run cleanup before load. - LOG(warning, "Base directory '%s' contains multiple fusion indexes", - baseDir.c_str()); + std::filesystem::directory_iterator dir_scan{std::filesystem::path(baseDir)}; + for (auto& entry : dir_scan) { + if (entry.is_directory()) { + vespalib::string name = entry.path().filename().string(); + if (name.find(IndexDiskLayout::FlushDirPrefix) == 0) { + flushDirs.push_back(name); + } + if (name.find(IndexDiskLayout::FusionDirPrefix) == 0) { + if (!fusionDir.empty()) { + // Should never happen, since we run cleanup before load. + LOG(warning, "Base directory '%s' contains multiple fusion indexes", + baseDir.c_str()); + } + fusionDir = name; } - fusionDir = name; } } } -- cgit v1.2.3