diff --git a/Libraries/LibCore/DirIterator.cpp b/Libraries/LibCore/DirIterator.cpp index f009d6c9f3..b2f2dcea9a 100644 --- a/Libraries/LibCore/DirIterator.cpp +++ b/Libraries/LibCore/DirIterator.cpp @@ -67,6 +67,9 @@ bool DirIterator::advance_next() if (m_flags & Flags::SkipDots && m_next.starts_with('.')) continue; + if (m_flags & Flags::SkipParentAndBaseDir && (m_next == "." || m_next == "..")) + continue; + return !m_next.is_empty(); } } diff --git a/Libraries/LibCore/DirIterator.h b/Libraries/LibCore/DirIterator.h index a7aa80f5c6..acbbe453e0 100644 --- a/Libraries/LibCore/DirIterator.h +++ b/Libraries/LibCore/DirIterator.h @@ -36,6 +36,7 @@ public: enum Flags { NoFlags = 0x0, SkipDots = 0x1, + SkipParentAndBaseDir = 0x2, }; DirIterator(const StringView& path, Flags = Flags::NoFlags);