1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/files/file_enumerator.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/files/file_util.h" 8*6777b538SAndroid Build Coastguard Worker #include "base/functional/function_ref.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace base { 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker FileEnumerator::FileInfo::~FileInfo() = default; 13*6777b538SAndroid Build Coastguard Worker ShouldSkip(const FilePath & path)14*6777b538SAndroid Build Coastguard Workerbool FileEnumerator::ShouldSkip(const FilePath& path) { 15*6777b538SAndroid Build Coastguard Worker FilePath::StringType basename = path.BaseName().value(); 16*6777b538SAndroid Build Coastguard Worker return basename == FILE_PATH_LITERAL(".") || 17*6777b538SAndroid Build Coastguard Worker (basename == FILE_PATH_LITERAL("..") && 18*6777b538SAndroid Build Coastguard Worker !(INCLUDE_DOT_DOT & file_type_)); 19*6777b538SAndroid Build Coastguard Worker } 20*6777b538SAndroid Build Coastguard Worker IsTypeMatched(bool is_dir) const21*6777b538SAndroid Build Coastguard Workerbool FileEnumerator::IsTypeMatched(bool is_dir) const { 22*6777b538SAndroid Build Coastguard Worker return (file_type_ & 23*6777b538SAndroid Build Coastguard Worker (is_dir ? FileEnumerator::DIRECTORIES : FileEnumerator::FILES)) != 0; 24*6777b538SAndroid Build Coastguard Worker } 25*6777b538SAndroid Build Coastguard Worker ForEach(FunctionRef<void (const FilePath & path)> ref)26*6777b538SAndroid Build Coastguard Workervoid FileEnumerator::ForEach(FunctionRef<void(const FilePath& path)> ref) { 27*6777b538SAndroid Build Coastguard Worker for (FilePath name = Next(); !name.empty(); name = Next()) { 28*6777b538SAndroid Build Coastguard Worker ref(name); 29*6777b538SAndroid Build Coastguard Worker } 30*6777b538SAndroid Build Coastguard Worker } 31*6777b538SAndroid Build Coastguard Worker 32*6777b538SAndroid Build Coastguard Worker } // namespace base 33