OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/disk_cache/cache_util.h" | 5 #include "net/disk_cache/cache_util.h" |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/files/file_enumerator.h" |
8 #include "base/logging.h" | 9 #include "base/logging.h" |
9 #include "base/string_util.h" | 10 #include "base/string_util.h" |
10 | 11 |
11 namespace disk_cache { | 12 namespace disk_cache { |
12 | 13 |
13 bool MoveCache(const base::FilePath& from_path, const base::FilePath& to_path) { | 14 bool MoveCache(const base::FilePath& from_path, const base::FilePath& to_path) { |
14 #if defined(OS_CHROMEOS) | 15 #if defined(OS_CHROMEOS) |
15 // For ChromeOS, we don't actually want to rename the cache | 16 // For ChromeOS, we don't actually want to rename the cache |
16 // directory, because if we do, then it'll get recreated through the | 17 // directory, because if we do, then it'll get recreated through the |
17 // encrypted filesystem (with encrypted names), and we won't be able | 18 // encrypted filesystem (with encrypted names), and we won't be able |
18 // to see these directories anymore in an unmounted encrypted | 19 // to see these directories anymore in an unmounted encrypted |
19 // filesystem, so we just move each item in the cache to a new | 20 // filesystem, so we just move each item in the cache to a new |
20 // directory. | 21 // directory. |
21 if (!file_util::CreateDirectory(to_path)) { | 22 if (!file_util::CreateDirectory(to_path)) { |
22 LOG(ERROR) << "Unable to create destination cache directory."; | 23 LOG(ERROR) << "Unable to create destination cache directory."; |
23 return false; | 24 return false; |
24 } | 25 } |
25 file_util::FileEnumerator iter(from_path, false /* not recursive */, | 26 base::FileEnumerator iter(from_path, false /* not recursive */, |
26 file_util::FileEnumerator::DIRECTORIES | | 27 base::FileEnumerator::DIRECTORIES | base::FileEnumerator::FILES); |
27 file_util::FileEnumerator::FILES); | |
28 for (base::FilePath name = iter.Next(); !name.value().empty(); | 28 for (base::FilePath name = iter.Next(); !name.value().empty(); |
29 name = iter.Next()) { | 29 name = iter.Next()) { |
30 base::FilePath destination = to_path.Append(name.BaseName()); | 30 base::FilePath destination = to_path.Append(name.BaseName()); |
31 if (!file_util::Move(name, destination)) { | 31 if (!file_util::Move(name, destination)) { |
32 LOG(ERROR) << "Unable to move cache item."; | 32 LOG(ERROR) << "Unable to move cache item."; |
33 return false; | 33 return false; |
34 } | 34 } |
35 } | 35 } |
36 return true; | 36 return true; |
37 #else | 37 #else |
38 return file_util::Move(from_path, to_path); | 38 return file_util::Move(from_path, to_path); |
39 #endif | 39 #endif |
40 } | 40 } |
41 | 41 |
42 void DeleteCache(const base::FilePath& path, bool remove_folder) { | 42 void DeleteCache(const base::FilePath& path, bool remove_folder) { |
43 file_util::FileEnumerator iter(path, | 43 base::FileEnumerator iter(path, |
44 /* recursive */ false, | 44 /* recursive */ false, |
45 file_util::FileEnumerator::FILES); | 45 base::FileEnumerator::FILES); |
46 for (base::FilePath file = iter.Next(); !file.value().empty(); | 46 for (base::FilePath file = iter.Next(); !file.value().empty(); |
47 file = iter.Next()) { | 47 file = iter.Next()) { |
48 if (!file_util::Delete(file, /* recursive */ false)) { | 48 if (!file_util::Delete(file, /* recursive */ false)) { |
49 LOG(WARNING) << "Unable to delete cache."; | 49 LOG(WARNING) << "Unable to delete cache."; |
50 return; | 50 return; |
51 } | 51 } |
52 } | 52 } |
53 | 53 |
54 if (remove_folder) { | 54 if (remove_folder) { |
55 if (!file_util::Delete(path, /* recursive */ false)) { | 55 if (!file_util::Delete(path, /* recursive */ false)) { |
56 LOG(WARNING) << "Unable to delete cache folder."; | 56 LOG(WARNING) << "Unable to delete cache folder."; |
57 return; | 57 return; |
58 } | 58 } |
59 } | 59 } |
60 } | 60 } |
61 | 61 |
62 bool DeleteCacheFile(const base::FilePath& name) { | 62 bool DeleteCacheFile(const base::FilePath& name) { |
63 return file_util::Delete(name, false); | 63 return file_util::Delete(name, false); |
64 } | 64 } |
65 | 65 |
66 } // namespace disk_cache | 66 } // namespace disk_cache |
OLD | NEW |