summaryrefslogtreecommitdiffstats
path: root/base/file_util.h
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-19 23:52:02 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-19 23:52:02 +0000
commit5dce90240ecb2259290cd3aa12294b832b09eee9 (patch)
treeefbb4f40583404e421b12e5dc2a1e0259f9dd186 /base/file_util.h
parente4bac199faccb0b0e45673d21aa5dae0ea77a787 (diff)
downloadchromium_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.h14
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);