• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/disk_cache/simple/simple_index_file.h"
6 
7 #include <string>
8 
9 #include "base/files/file_enumerator.h"
10 #include "base/files/file_path.h"
11 
12 namespace disk_cache {
13 
14 // static
TraverseCacheDirectory(const base::FilePath & cache_path,const EntryFileCallback & entry_file_callback)15 bool SimpleIndexFile::TraverseCacheDirectory(
16     const base::FilePath& cache_path,
17     const EntryFileCallback& entry_file_callback) {
18   const base::FilePath current_directory(FILE_PATH_LITERAL("."));
19   const base::FilePath parent_directory(FILE_PATH_LITERAL(".."));
20   const base::FilePath::StringType file_pattern = FILE_PATH_LITERAL("*");
21   base::FileEnumerator enumerator(
22       cache_path, false /* recursive */, base::FileEnumerator::FILES,
23       file_pattern);
24   for (base::FilePath file_path = enumerator.Next(); !file_path.empty();
25        file_path = enumerator.Next()) {
26     if (file_path == current_directory || file_path == parent_directory)
27       continue;
28     entry_file_callback.Run(file_path);
29   }
30   return true;
31 }
32 
33 }  // namespace disk_cache
34