Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1369)

Unified Diff: base/file_util_posix.cc

Issue 87003: Implement file_util::CountFilesCreatedAfter() for posix environments.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/file_util_posix.cc
===================================================================
--- base/file_util_posix.cc (revision 14056)
+++ base/file_util_posix.cc (working copy)
@@ -4,6 +4,7 @@
#include "base/file_util.h"
+#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <fnmatch.h>
@@ -14,7 +15,9 @@
#include <sys/errno.h>
#include <sys/mman.h>
#include <sys/stat.h>
+#include <sys/types.h>
#include <time.h>
+#include <unistd.h>
#include <fstream>
@@ -22,6 +25,7 @@
#include "base/file_path.h"
#include "base/logging.h"
#include "base/string_util.h"
+#include "base/time.h"
namespace file_util {
@@ -51,6 +55,32 @@
return true;
}
+int CountFilesCreatedAfter(const FilePath& path,
+ const base::Time& comparison_time) {
+ int file_count = 0;
+
+ DIR* dir = opendir(path.value().c_str());
+ if (dir) {
+ struct dirent* ent;
+ while ((ent = readdir(dir)) != NULL) {
Erik does not do reviews 2009/04/21 16:10:21 lint says to use readdir_r instead of readdir (see
+ if ((strcmp(ent->d_name, ".") == 0) ||
+ (strcmp(ent->d_name, "..") == 0))
+ continue;
+
+ struct stat64 st;
+ int test = stat64(path.Append(ent->d_name).value().c_str(), &st);
+ if (test != 0) {
+ LOG(ERROR) << "stat64 failed: " << strerror(errno);
+ continue;
+ }
+ if (st.st_ctime >= comparison_time.ToTimeT())
Hironori Bono 2009/04/22 04:46:27 nit: If I recall correctly, base::Time::ToTimeT()
hamaji 2009/04/22 05:12:23 Good point. However, if we use Time::DoubleT(), I
Hironori Bono 2009/04/22 05:35:58 I'm wondering why you did not write this comment i
+ ++file_count;
+ }
+ closedir(dir);
+ }
+ return file_count;
+}
+
// TODO(erikkay): The Windows version of this accepts paths like "foo/bar/*"
// which works both with and without the recursive flag. I'm not sure we need
// that functionality. If not, remove from file_util_win.cc, otherwise add it
« no previous file with comments | « base/file_util.h ('k') | base/file_util_unittest.cc » ('j') | base/file_util_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698