summaryrefslogtreecommitdiffstats
path: root/base/file_util.cc
diff options
context:
space:
mode:
authorcpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-24 21:56:26 +0000
committercpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-24 21:56:26 +0000
commitc2c132c637874d6d3104293791b15b38da58bfc9 (patch)
treef054e86c5722eb229c08fe1a37181aa41020b6cf /base/file_util.cc
parenta24642a800c1712eeaa791f0fb0ed1527885c6fb (diff)
downloadchromium_src-c2c132c637874d6d3104293791b15b38da58bfc9.zip
chromium_src-c2c132c637874d6d3104293791b15b38da58bfc9.tar.gz
chromium_src-c2c132c637874d6d3104293791b15b38da58bfc9.tar.bz2
Function to compute the total size of the files in a directory
We need this for the diagnostic mode but it can be used by others. Did not see test for GetFileSize() so added them BUG=none TEST=ut included Review URL: http://codereview.chromium.org/1220001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42540 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util.cc')
-rw-r--r--base/file_util.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/base/file_util.cc b/base/file_util.cc
index b10cd0b..d2e6575 100644
--- a/base/file_util.cc
+++ b/base/file_util.cc
@@ -268,6 +268,23 @@ bool ContainsPath(const FilePath &parent, const FilePath& child) {
return true;
}
+int64 ComputeDirectorySize(const FilePath& root_path) {
+ int64 running_size = 0;
+ FileEnumerator file_iter(root_path, true, FileEnumerator::FILES);
+ for (FilePath current = file_iter.Next(); !current.empty();
+ current = file_iter.Next()) {
+ FileEnumerator::FindInfo info;
+ file_iter.GetFindInfo(&info);
+#if defined(OS_WIN)
+ LARGE_INTEGER li = { info.nFileSizeLow, info.nFileSizeHigh };
+ running_size += li.QuadPart;
+#else
+ running_size += info.stat.st_size;
+#endif
+ }
+ return running_size;
+}
+
///////////////////////////////////////////////
// MemoryMappedFile