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

Side by Side Diff: base/file_util_win.cc

Issue 3347005: Moving file_util::FileInfo to base::PlatformFileInfo, and adding the... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/file_util.h" 5 #include "base/file_util.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <propvarutil.h> 8 #include <propvarutil.h>
9 #include <psapi.h> 9 #include <psapi.h>
10 #include <shellapi.h> 10 #include <shellapi.h>
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 return file_count; 120 return file_count;
121 } 121 }
122 122
123 bool Delete(const FilePath& path, bool recursive) { 123 bool Delete(const FilePath& path, bool recursive) {
124 if (path.value().length() >= MAX_PATH) 124 if (path.value().length() >= MAX_PATH)
125 return false; 125 return false;
126 126
127 if (!recursive) { 127 if (!recursive) {
128 // If not recursing, then first check to see if |path| is a directory. 128 // If not recursing, then first check to see if |path| is a directory.
129 // If it is, then remove it with RemoveDirectory. 129 // If it is, then remove it with RemoveDirectory.
130 FileInfo file_info; 130 base::PlatformFileInfo file_info;
131 if (GetFileInfo(path, &file_info) && file_info.is_directory) 131 if (GetFileInfo(path, &file_info) && file_info.is_directory)
132 return RemoveDirectory(path.value().c_str()) != 0; 132 return RemoveDirectory(path.value().c_str()) != 0;
133 133
134 // Otherwise, it's a file, wildcard or non-existant. Try DeleteFile first 134 // Otherwise, it's a file, wildcard or non-existant. Try DeleteFile first
135 // because it should be faster. If DeleteFile fails, then we fall through 135 // because it should be faster. If DeleteFile fails, then we fall through
136 // to SHFileOperation, which will do the right thing. 136 // to SHFileOperation, which will do the right thing.
137 if (DeleteFile(path.value().c_str()) != 0) 137 if (DeleteFile(path.value().c_str()) != 0)
138 return true; 138 return true;
139 } 139 }
140 140
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 log << "GetLastError() for DirectoryExists() is " 668 log << "GetLastError() for DirectoryExists() is "
669 << dir_exists_error << std::endl; 669 << dir_exists_error << std::endl;
670 return false; 670 return false;
671 } 671 }
672 } else { 672 } else {
673 log << "::CreateDirectory() succeeded." << std::endl; 673 log << "::CreateDirectory() succeeded." << std::endl;
674 return true; 674 return true;
675 } 675 }
676 } 676 }
677 677
678 bool GetFileInfo(const FilePath& file_path, FileInfo* results) { 678 bool GetFileInfo(const FilePath& file_path, base::PlatformFileInfo* results) {
679 WIN32_FILE_ATTRIBUTE_DATA attr; 679 WIN32_FILE_ATTRIBUTE_DATA attr;
680 if (!GetFileAttributesEx(file_path.value().c_str(), 680 if (!GetFileAttributesEx(file_path.value().c_str(),
681 GetFileExInfoStandard, &attr)) { 681 GetFileExInfoStandard, &attr)) {
682 return false; 682 return false;
683 } 683 }
684 684
685 ULARGE_INTEGER size; 685 ULARGE_INTEGER size;
686 size.HighPart = attr.nFileSizeHigh; 686 size.HighPart = attr.nFileSizeHigh;
687 size.LowPart = attr.nFileSizeLow; 687 size.LowPart = attr.nFileSizeLow;
688 results->size = size.QuadPart; 688 results->size = size.QuadPart;
689 689
690 results->is_directory = 690 results->is_directory =
691 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; 691 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
692 results->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime); 692 results->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime);
693 results->last_accessed = base::Time::FromFileTime(attr.ftLastAccessTime);
694 results->creation_time = base::Time::FromFileTime(attr.ftCreationTime);
693 695
694 return true; 696 return true;
695 } 697 }
696 698
697 bool SetLastModifiedTime(const FilePath& file_path, base::Time last_modified) { 699 bool SetLastModifiedTime(const FilePath& file_path, base::Time last_modified) {
698 FILETIME timestamp(last_modified.ToFileTime()); 700 FILETIME timestamp(last_modified.ToFileTime());
699 ScopedHandle file_handle( 701 ScopedHandle file_handle(
700 CreateFile(file_path.value().c_str(), FILE_WRITE_ATTRIBUTES, 702 CreateFile(file_path.value().c_str(), FILE_WRITE_ATTRIBUTES,
701 kFileShareAll, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)); 703 kFileShareAll, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL));
702 BOOL ret = SetFileTime(file_handle.Get(), NULL, &timestamp, &timestamp); 704 BOOL ret = SetFileTime(file_handle.Get(), NULL, &timestamp, &timestamp);
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 uint8 unused = *(touch + offset); 1094 uint8 unused = *(touch + offset);
1093 offset += step_size; 1095 offset += step_size;
1094 } 1096 }
1095 FreeLibrary(dll_module); 1097 FreeLibrary(dll_module);
1096 } 1098 }
1097 1099
1098 return true; 1100 return true;
1099 } 1101 }
1100 1102
1101 } // namespace file_util 1103 } // namespace file_util
OLDNEW
« no previous file with comments | « base/file_util_unittest.cc ('k') | base/platform_file.h » ('j') | base/platform_file.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698