diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-26 01:40:12 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-26 01:40:12 +0000 |
commit | b33f1d943fd420857d9c5988ce1f4598f9a8765a (patch) | |
tree | 8bb2ca934346bb21198ca95c5294d15643181662 /base | |
parent | c06f3007c6f5f565501d33343de89c229f356e7a (diff) | |
download | chromium_src-b33f1d943fd420857d9c5988ce1f4598f9a8765a.zip chromium_src-b33f1d943fd420857d9c5988ce1f4598f9a8765a.tar.gz chromium_src-b33f1d943fd420857d9c5988ce1f4598f9a8765a.tar.bz2 |
file_util: Convert the wstring version of IsDirectoryEmpty to FilePath.
BUG=24672
TEST=compiles
Review URL: http://codereview.chromium.org/2153002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48237 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/file_util.cc | 11 | ||||
-rw-r--r-- | base/file_util.h | 8 | ||||
-rw-r--r-- | base/file_util_unittest.cc | 16 | ||||
-rw-r--r-- | base/file_util_win.cc | 9 |
4 files changed, 30 insertions, 14 deletions
diff --git a/base/file_util.cc b/base/file_util.cc index 5bc73ce..aea6e62 100644 --- a/base/file_util.cc +++ b/base/file_util.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -194,6 +194,15 @@ bool ReadFileToString(const FilePath& path, std::string* contents) { return true; } +bool IsDirectoryEmpty(const FilePath& dir_path) { + FileEnumerator files(dir_path, false, + static_cast<FileEnumerator::FILE_TYPE>( + FileEnumerator::FILES | FileEnumerator::DIRECTORIES)); + if (files.Next().value().empty()) + return true; + return false; +} + FILE* CreateAndOpenTemporaryFile(FilePath* path) { FilePath directory; if (!GetTempDir(&directory)) diff --git a/base/file_util.h b/base/file_util.h index 16f18f1..414f775 100644 --- a/base/file_util.h +++ b/base/file_util.h @@ -212,16 +212,16 @@ bool TaskbarPinShortcutLink(const wchar_t* shortcut); // already be pinned to the taskbar. bool TaskbarUnpinShortcutLink(const wchar_t* shortcut); -// Return true if the given directory is empty -bool IsDirectoryEmpty(const std::wstring& dir_path); - // Copy from_path to to_path recursively and then delete from_path recursively. // Returns true if all operations succeed. // This function simulates Move(), but unlike Move() it works across volumes. // This fuction is not transactional. bool CopyAndDeleteDirectory(const FilePath& from_path, const FilePath& to_path); -#endif +#endif // defined(OS_WIN) + +// Return true if the given directory is empty +bool IsDirectoryEmpty(const FilePath& dir_path); // Get the temporary directory provided by the system. bool GetTempDir(FilePath* path); diff --git a/base/file_util_unittest.cc b/base/file_util_unittest.cc index efe79c9..682376a 100644 --- a/base/file_util_unittest.cc +++ b/base/file_util_unittest.cc @@ -1622,4 +1622,20 @@ TEST_F(FileUtilTest, LastModified) { ASSERT_TRUE(file_info.last_modified == modification_time); } +TEST_F(FileUtilTest, IsDirectoryEmpty) { + FilePath empty_dir = test_dir_.Append(FILE_PATH_LITERAL("EmptyDir")); + + ASSERT_FALSE(file_util::PathExists(empty_dir)); + + ASSERT_TRUE(file_util::CreateDirectory(empty_dir)); + + EXPECT_TRUE(file_util::IsDirectoryEmpty(empty_dir)); + + FilePath foo(empty_dir.Append(FILE_PATH_LITERAL("foo.txt"))); + std::string bar("baz"); + ASSERT_TRUE(file_util::WriteFile(foo, bar.c_str(), bar.length())); + + EXPECT_FALSE(file_util::IsDirectoryEmpty(empty_dir)); +} + } // namespace diff --git a/base/file_util_win.cc b/base/file_util_win.cc index fb65feb..fcad39c 100644 --- a/base/file_util_win.cc +++ b/base/file_util_win.cc @@ -431,15 +431,6 @@ bool TaskbarUnpinShortcutLink(const wchar_t* shortcut) { return result > 32; } -bool IsDirectoryEmpty(const std::wstring& dir_path) { - FileEnumerator files(FilePath(dir_path), false, - static_cast<FileEnumerator::FILE_TYPE>( - FileEnumerator::FILES | FileEnumerator::DIRECTORIES)); - if (files.Next().value().empty()) - return true; - return false; -} - bool GetTempDir(FilePath* path) { wchar_t temp_path[MAX_PATH + 1]; DWORD path_len = ::GetTempPath(MAX_PATH, temp_path); |