// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/files/file_enumerator.h" #include "base/files/file_util.h" #include "base/functional/function_ref.h" namespace base { FileEnumerator::FileInfo::~FileInfo() = default; FileEnumerator::FileInfo::FileInfo(const FileEnumerator::FileInfo&) = default; FileEnumerator::FileInfo::FileInfo(FileEnumerator::FileInfo&&) = default; FileEnumerator::FileInfo& FileEnumerator::FileInfo::operator=( const FileEnumerator::FileInfo& that) = default; FileEnumerator::FileInfo& FileEnumerator::FileInfo::operator=( FileEnumerator::FileInfo&& that) = default; bool FileEnumerator::ShouldSkip(const FilePath& path) { FilePath base_path = path.BaseName(); const FilePath::StringType& basename = base_path.value(); return basename == FILE_PATH_LITERAL(".") || (basename == FILE_PATH_LITERAL("..") && !(INCLUDE_DOT_DOT & file_type_)); } bool FileEnumerator::IsTypeMatched(bool is_dir) const { return (file_type_ & (is_dir ? FileEnumerator::DIRECTORIES : FileEnumerator::FILES)) != 0; } void FileEnumerator::ForEach(FunctionRef ref) { for (FilePath name = Next(); !name.empty(); name = Next()) { ref(name); } } } // namespace base