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 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 : public FileSystemFileUtil::AbstractFileEnumerator { | 513 : public FileSystemFileUtil::AbstractFileEnumerator { |
514 public: | 514 public: |
515 FileSystemFileEnumerator(const FilePath& root_path, | 515 FileSystemFileEnumerator(const FilePath& root_path, |
516 bool recursive, | 516 bool recursive, |
517 file_util::FileEnumerator::FileType file_type) | 517 file_util::FileEnumerator::FileType file_type) |
518 : file_enum_(root_path, recursive, file_type) { | 518 : file_enum_(root_path, recursive, file_type) { |
519 } | 519 } |
520 | 520 |
521 ~FileSystemFileEnumerator() {} | 521 ~FileSystemFileEnumerator() {} |
522 | 522 |
523 virtual FilePath Next(); | 523 virtual FilePath Next() OVERRIDE; |
524 virtual bool IsDirectory(); | 524 virtual int64 Size() OVERRIDE; |
| 525 virtual bool IsDirectory() OVERRIDE; |
525 | 526 |
526 private: | 527 private: |
527 file_util::FileEnumerator file_enum_; | 528 file_util::FileEnumerator file_enum_; |
| 529 file_util::FileEnumerator::FindInfo file_util_info_; |
528 }; | 530 }; |
529 | 531 |
530 FilePath FileSystemFileEnumerator::Next() { | 532 FilePath FileSystemFileEnumerator::Next() { |
531 return file_enum_.Next(); | 533 FilePath rv = file_enum_.Next(); |
| 534 if (!rv.empty()) |
| 535 file_enum_.GetFindInfo(&file_util_info_); |
| 536 return rv; |
| 537 } |
| 538 |
| 539 int64 FileSystemFileEnumerator::Size() { |
| 540 return file_util::FileEnumerator::GetFilesize(file_util_info_); |
532 } | 541 } |
533 | 542 |
534 bool FileSystemFileEnumerator::IsDirectory() { | 543 bool FileSystemFileEnumerator::IsDirectory() { |
535 file_util::FileEnumerator::FindInfo file_util_info; | 544 return file_util::FileEnumerator::IsDirectory(file_util_info_); |
536 file_enum_.GetFindInfo(&file_util_info); | |
537 return file_util::FileEnumerator::IsDirectory(file_util_info); | |
538 } | 545 } |
539 | 546 |
540 FileSystemFileUtil::AbstractFileEnumerator* | 547 FileSystemFileUtil::AbstractFileEnumerator* |
541 FileSystemFileUtil::CreateFileEnumerator( | 548 FileSystemFileUtil::CreateFileEnumerator( |
542 FileSystemOperationContext* unused, | 549 FileSystemOperationContext* unused, |
543 const FilePath& root_path) { | 550 const FilePath& root_path) { |
544 return new FileSystemFileEnumerator( | 551 return new FileSystemFileEnumerator( |
545 root_path, true, static_cast<file_util::FileEnumerator::FileType>( | 552 root_path, true, static_cast<file_util::FileEnumerator::FileType>( |
546 file_util::FileEnumerator::FILES | | 553 file_util::FileEnumerator::FILES | |
547 file_util::FileEnumerator::DIRECTORIES)); | 554 file_util::FileEnumerator::DIRECTORIES)); |
548 } | 555 } |
549 | 556 |
550 } // namespace fileapi | 557 } // namespace fileapi |
OLD | NEW |