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 #include <vector> |
9 | 9 |
10 #include "base/file_util_proxy.h" | 10 #include "base/file_util_proxy.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 | 103 |
104 PlatformFileError FileSystemFileUtil::ReadDirectory( | 104 PlatformFileError FileSystemFileUtil::ReadDirectory( |
105 FileSystemOperationContext* unused, | 105 FileSystemOperationContext* unused, |
106 const FilePath& file_path, | 106 const FilePath& file_path, |
107 std::vector<base::FileUtilProxy::Entry>* entries) { | 107 std::vector<base::FileUtilProxy::Entry>* entries) { |
108 // TODO(kkanetkar): Implement directory read in multiple chunks. | 108 // TODO(kkanetkar): Implement directory read in multiple chunks. |
109 if (!file_util::DirectoryExists(file_path)) | 109 if (!file_util::DirectoryExists(file_path)) |
110 return base::PLATFORM_FILE_ERROR_NOT_FOUND; | 110 return base::PLATFORM_FILE_ERROR_NOT_FOUND; |
111 | 111 |
112 file_util::FileEnumerator file_enum( | 112 file_util::FileEnumerator file_enum( |
113 file_path, false, static_cast<file_util::FileEnumerator::FILE_TYPE>( | 113 file_path, false, static_cast<file_util::FileEnumerator::FileType>( |
114 file_util::FileEnumerator::FILES | | 114 file_util::FileEnumerator::FILES | |
115 file_util::FileEnumerator::DIRECTORIES)); | 115 file_util::FileEnumerator::DIRECTORIES)); |
116 FilePath current; | 116 FilePath current; |
117 while (!(current = file_enum.Next()).empty()) { | 117 while (!(current = file_enum.Next()).empty()) { |
118 base::FileUtilProxy::Entry entry; | 118 base::FileUtilProxy::Entry entry; |
119 file_util::FileEnumerator::FindInfo info; | 119 file_util::FileEnumerator::FindInfo info; |
120 file_enum.GetFindInfo(&info); | 120 file_enum.GetFindInfo(&info); |
121 entry.is_directory = file_enum.IsDirectory(info); | 121 entry.is_directory = file_enum.IsDirectory(info); |
122 // This will just give the entry's name instead of entire path | 122 // This will just give the entry's name instead of entire path |
123 // if we use current.value(). | 123 // if we use current.value(). |
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 FileSystemOperationContext* unused, | 514 FileSystemOperationContext* unused, |
515 const FilePath& file_path) { | 515 const FilePath& file_path) { |
516 return file_util::IsDirectoryEmpty(file_path); | 516 return file_util::IsDirectoryEmpty(file_path); |
517 } | 517 } |
518 | 518 |
519 class FileSystemFileEnumerator | 519 class FileSystemFileEnumerator |
520 : public FileSystemFileUtil::AbstractFileEnumerator { | 520 : public FileSystemFileUtil::AbstractFileEnumerator { |
521 public: | 521 public: |
522 FileSystemFileEnumerator(const FilePath& root_path, | 522 FileSystemFileEnumerator(const FilePath& root_path, |
523 bool recursive, | 523 bool recursive, |
524 file_util::FileEnumerator::FILE_TYPE file_type) | 524 file_util::FileEnumerator::FileType file_type) |
525 : file_enum_(root_path, recursive, file_type) { | 525 : file_enum_(root_path, recursive, file_type) { |
526 } | 526 } |
527 | 527 |
528 ~FileSystemFileEnumerator() {} | 528 ~FileSystemFileEnumerator() {} |
529 | 529 |
530 virtual FilePath Next(); | 530 virtual FilePath Next(); |
531 virtual bool IsDirectory(); | 531 virtual bool IsDirectory(); |
532 | 532 |
533 private: | 533 private: |
534 file_util::FileEnumerator file_enum_; | 534 file_util::FileEnumerator file_enum_; |
535 }; | 535 }; |
536 | 536 |
537 FilePath FileSystemFileEnumerator::Next() { | 537 FilePath FileSystemFileEnumerator::Next() { |
538 return file_enum_.Next(); | 538 return file_enum_.Next(); |
539 } | 539 } |
540 | 540 |
541 bool FileSystemFileEnumerator::IsDirectory() { | 541 bool FileSystemFileEnumerator::IsDirectory() { |
542 file_util::FileEnumerator::FindInfo file_util_info; | 542 file_util::FileEnumerator::FindInfo file_util_info; |
543 file_enum_.GetFindInfo(&file_util_info); | 543 file_enum_.GetFindInfo(&file_util_info); |
544 return file_util::FileEnumerator::IsDirectory(file_util_info); | 544 return file_util::FileEnumerator::IsDirectory(file_util_info); |
545 } | 545 } |
546 | 546 |
547 FileSystemFileUtil::AbstractFileEnumerator* | 547 FileSystemFileUtil::AbstractFileEnumerator* |
548 FileSystemFileUtil::CreateFileEnumerator( | 548 FileSystemFileUtil::CreateFileEnumerator( |
549 FileSystemOperationContext* unused, | 549 FileSystemOperationContext* unused, |
550 const FilePath& root_path) { | 550 const FilePath& root_path) { |
551 return new FileSystemFileEnumerator( | 551 return new FileSystemFileEnumerator( |
552 root_path, true, static_cast<file_util::FileEnumerator::FILE_TYPE>( | 552 root_path, true, static_cast<file_util::FileEnumerator::FileType>( |
553 file_util::FileEnumerator::FILES | | 553 file_util::FileEnumerator::FILES | |
554 file_util::FileEnumerator::DIRECTORIES)); | 554 file_util::FileEnumerator::DIRECTORIES)); |
555 } | 555 } |
556 | 556 |
557 } // namespace fileapi | 557 } // namespace fileapi |
OLD | NEW |