| 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 "webkit/fileapi/file_system_file_util.h" | 5 #include "webkit/fileapi/file_system_file_util.h" |
| 6 | 6 |
| 7 #include <stack> | 7 #include <stack> |
| 8 #include <vector> |
| 8 | 9 |
| 9 #include "base/file_util_proxy.h" | 10 #include "base/file_util_proxy.h" |
| 10 #include "base/logging.h" | 11 #include "base/logging.h" |
| 11 #include "base/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 12 #include "webkit/fileapi/file_system_operation_context.h" | 13 #include "webkit/fileapi/file_system_operation_context.h" |
| 13 | 14 |
| 14 namespace fileapi { | 15 namespace fileapi { |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 // This assumes that the root exists. | 19 // This assumes that the root exists. |
| 19 bool ParentExists(FileSystemOperationContext* context, | 20 bool ParentExists(FileSystemOperationContext* context, |
| 20 FileSystemFileUtil* file_util, const FilePath& file_path) { | 21 FileSystemFileUtil* file_util, const FilePath& file_path) { |
| 21 // If file_path is in the root, file_path.DirName() will be ".", | 22 // If file_path is in the root, file_path.DirName() will be ".", |
| 22 // since we use paths with no leading '/'. | 23 // since we use paths with no leading '/'. |
| 23 FilePath parent = file_path.DirName(); | 24 FilePath parent = file_path.DirName(); |
| 24 if (parent == FilePath(FILE_PATH_LITERAL("."))) | 25 if (parent == FilePath(FILE_PATH_LITERAL("."))) |
| 25 return true; | 26 return true; |
| 26 return file_util->DirectoryExists(context, parent); | 27 return file_util->DirectoryExists(context, parent); |
| 27 } | 28 } |
| 28 | 29 |
| 29 } | 30 } // namespace |
| 30 | 31 |
| 31 // static | 32 // static |
| 32 FileSystemFileUtil* FileSystemFileUtil::GetInstance() { | 33 FileSystemFileUtil* FileSystemFileUtil::GetInstance() { |
| 33 return Singleton<FileSystemFileUtil>::get(); | 34 return Singleton<FileSystemFileUtil>::get(); |
| 34 } | 35 } |
| 35 | 36 |
| 36 PlatformFileError FileSystemFileUtil::CreateOrOpen( | 37 PlatformFileError FileSystemFileUtil::CreateOrOpen( |
| 37 FileSystemOperationContext* unused, | 38 FileSystemOperationContext* unused, |
| 38 const FilePath& file_path, int file_flags, | 39 const FilePath& file_path, int file_flags, |
| 39 PlatformFile* file_handle, bool* created) { | 40 PlatformFile* file_handle, bool* created) { |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 | 199 |
| 199 PlatformFileError FileSystemFileUtil::Delete( | 200 PlatformFileError FileSystemFileUtil::Delete( |
| 200 FileSystemOperationContext* context, | 201 FileSystemOperationContext* context, |
| 201 const FilePath& file_path, | 202 const FilePath& file_path, |
| 202 bool recursive) { | 203 bool recursive) { |
| 203 if (DirectoryExists(context, file_path)) { | 204 if (DirectoryExists(context, file_path)) { |
| 204 if (!recursive) | 205 if (!recursive) |
| 205 return DeleteSingleDirectory(context, file_path); | 206 return DeleteSingleDirectory(context, file_path); |
| 206 else | 207 else |
| 207 return DeleteDirectoryRecursive(context, file_path); | 208 return DeleteDirectoryRecursive(context, file_path); |
| 208 } else | 209 } else { |
| 209 return DeleteFile(context, file_path); | 210 return DeleteFile(context, file_path); |
| 211 } |
| 210 } | 212 } |
| 211 | 213 |
| 212 PlatformFileError FileSystemFileUtil::Touch( | 214 PlatformFileError FileSystemFileUtil::Touch( |
| 213 FileSystemOperationContext* unused, | 215 FileSystemOperationContext* unused, |
| 214 const FilePath& file_path, | 216 const FilePath& file_path, |
| 215 const base::Time& last_access_time, | 217 const base::Time& last_access_time, |
| 216 const base::Time& last_modified_time) { | 218 const base::Time& last_modified_time) { |
| 217 if (!file_util::TouchFile( | 219 if (!file_util::TouchFile( |
| 218 file_path, last_access_time, last_modified_time)) | 220 file_path, last_access_time, last_modified_time)) |
| 219 return base::PLATFORM_FILE_ERROR_FAILED; | 221 return base::PLATFORM_FILE_ERROR_FAILED; |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 FileSystemFileUtil::CreateFileEnumerator( | 543 FileSystemFileUtil::CreateFileEnumerator( |
| 542 FileSystemOperationContext* unused, | 544 FileSystemOperationContext* unused, |
| 543 const FilePath& root_path) { | 545 const FilePath& root_path) { |
| 544 return new FileSystemFileEnumerator( | 546 return new FileSystemFileEnumerator( |
| 545 root_path, true, static_cast<file_util::FileEnumerator::FILE_TYPE>( | 547 root_path, true, static_cast<file_util::FileEnumerator::FILE_TYPE>( |
| 546 file_util::FileEnumerator::FILES | | 548 file_util::FileEnumerator::FILES | |
| 547 file_util::FileEnumerator::DIRECTORIES)); | 549 file_util::FileEnumerator::DIRECTORIES)); |
| 548 } | 550 } |
| 549 | 551 |
| 550 } // namespace fileapi | 552 } // namespace fileapi |
| OLD | NEW |