diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-19 23:52:02 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-11-19 23:52:02 +0000 |
commit | 5dce90240ecb2259290cd3aa12294b832b09eee9 (patch) | |
tree | efbb4f40583404e421b12e5dc2a1e0259f9dd186 /base/file_util.h | |
parent | e4bac199faccb0b0e45673d21aa5dae0ea77a787 (diff) | |
download | chromium_src-5dce90240ecb2259290cd3aa12294b832b09eee9.zip chromium_src-5dce90240ecb2259290cd3aa12294b832b09eee9.tar.gz chromium_src-5dce90240ecb2259290cd3aa12294b832b09eee9.tar.bz2 |
Port directory lister to posix.
Fix of issue 11437.
Review URL: http://codereview.chromium.org/11293
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5730 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util.h')
-rw-r--r-- | base/file_util.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/base/file_util.h b/base/file_util.h index e274d6a..0103003 100644 --- a/base/file_util.h +++ b/base/file_util.h @@ -14,6 +14,7 @@ #include <windows.h> #elif defined(OS_POSIX) #include <fts.h> +#include <sys/stat.h> #endif #include <stdio.h> @@ -323,6 +324,15 @@ bool SetCurrentDirectory(const std::wstring& current_directory); // program where latency does not matter. This class is blocking. class FileEnumerator { public: +#if defined(OS_WIN) + typedef WIN32_FIND_DATA FindInfo; +#elif defined(OS_POSIX) + typedef struct { + struct stat stat; + std::string filename; + } FindInfo; +#endif + enum FILE_TYPE { FILES = 0x1, DIRECTORIES = 0x2, @@ -361,6 +371,9 @@ class FileEnumerator { // Returns an empty string if there are no more results. std::wstring Next(); + // Write the file info into |info|. + void GetFindInfo(FindInfo* info); + private: std::wstring root_path_; bool recursive_; @@ -380,6 +393,7 @@ class FileEnumerator { HANDLE find_handle_; #elif defined(OS_POSIX) FTS* fts_; + FTSENT* fts_ent_; #endif DISALLOW_EVIL_CONSTRUCTORS(FileEnumerator); |