Index: trunk/src/net/base/directory_lister.cc |
=================================================================== |
--- trunk/src/net/base/directory_lister.cc (revision 198849) |
+++ trunk/src/net/base/directory_lister.cc (working copy) |
@@ -9,7 +9,6 @@ |
#include "base/bind.h" |
#include "base/file_util.h" |
-#include "base/files/file_enumerator.h" |
#include "base/i18n/file_util_icu.h" |
#include "base/message_loop.h" |
#include "base/threading/thread_restrictions.h" |
@@ -32,35 +31,47 @@ |
bool CompareAlphaDirsFirst(const DirectoryLister::DirectoryListerData& a, |
const DirectoryLister::DirectoryListerData& b) { |
// Parent directory before all else. |
- if (IsDotDot(a.info.GetName())) |
+ if (IsDotDot(file_util::FileEnumerator::GetFilename(a.info))) |
return true; |
- if (IsDotDot(b.info.GetName())) |
+ if (IsDotDot(file_util::FileEnumerator::GetFilename(b.info))) |
return false; |
// Directories before regular files. |
- bool a_is_directory = a.info.IsDirectory(); |
- bool b_is_directory = b.info.IsDirectory(); |
+ bool a_is_directory = file_util::FileEnumerator::IsDirectory(a.info); |
+ bool b_is_directory = file_util::FileEnumerator::IsDirectory(b.info); |
if (a_is_directory != b_is_directory) |
return a_is_directory; |
- return file_util::LocaleAwareCompareFilenames(a.info.GetName(), |
- b.info.GetName()); |
+ return file_util::LocaleAwareCompareFilenames( |
+ file_util::FileEnumerator::GetFilename(a.info), |
+ file_util::FileEnumerator::GetFilename(b.info)); |
} |
bool CompareDate(const DirectoryLister::DirectoryListerData& a, |
const DirectoryLister::DirectoryListerData& b) { |
// Parent directory before all else. |
- if (IsDotDot(a.info.GetName())) |
+ if (IsDotDot(file_util::FileEnumerator::GetFilename(a.info))) |
return true; |
- if (IsDotDot(b.info.GetName())) |
+ if (IsDotDot(file_util::FileEnumerator::GetFilename(b.info))) |
return false; |
// Directories before regular files. |
- bool a_is_directory = a.info.IsDirectory(); |
- bool b_is_directory = b.info.IsDirectory(); |
+ bool a_is_directory = file_util::FileEnumerator::IsDirectory(a.info); |
+ bool b_is_directory = file_util::FileEnumerator::IsDirectory(b.info); |
if (a_is_directory != b_is_directory) |
return a_is_directory; |
- return a.info.GetLastModifiedTime() > b.info.GetLastModifiedTime(); |
+#if defined(OS_POSIX) |
+ return a.info.stat.st_mtime > b.info.stat.st_mtime; |
+#elif defined(OS_WIN) |
+ if (a.info.ftLastWriteTime.dwHighDateTime == |
+ b.info.ftLastWriteTime.dwHighDateTime) { |
+ return a.info.ftLastWriteTime.dwLowDateTime > |
+ b.info.ftLastWriteTime.dwLowDateTime; |
+ } else { |
+ return a.info.ftLastWriteTime.dwHighDateTime > |
+ b.info.ftLastWriteTime.dwHighDateTime; |
+ } |
+#endif |
} |
// Comparator for sorting find result by paths. This uses the locale-aware |
@@ -150,17 +161,18 @@ |
return; |
} |
- int types = base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES; |
+ int types = file_util::FileEnumerator::FILES | |
+ file_util::FileEnumerator::DIRECTORIES; |
if (!recursive_) |
- types |= base::FileEnumerator::INCLUDE_DOT_DOT; |
+ types |= file_util::FileEnumerator::INCLUDE_DOT_DOT; |
- base::FileEnumerator file_enum(dir_, recursive_, types); |
+ file_util::FileEnumerator file_enum(dir_, recursive_, types); |
base::FilePath path; |
std::vector<DirectoryListerData> file_data; |
while (lister_ && !(path = file_enum.Next()).empty()) { |
DirectoryListerData data; |
- data.info = file_enum.GetInfo(); |
+ file_enum.GetFindInfo(&data.info); |
data.path = path; |
file_data.push_back(data); |