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

Side by Side Diff: base/file_util_win.cc

Issue 22929021: Converge file_util::GetFileInfo and base::GetPlaformFileInfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nacl? Created 7 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <psapi.h> 8 #include <psapi.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <shlobj.h> 10 #include <shlobj.h>
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 return true; 405 return true;
406 } 406 }
407 } 407 }
408 408
409 // TODO(rkc): Work out if we want to handle NTFS junctions here or not, handle 409 // TODO(rkc): Work out if we want to handle NTFS junctions here or not, handle
410 // them if we do decide to. 410 // them if we do decide to.
411 bool IsLink(const FilePath& file_path) { 411 bool IsLink(const FilePath& file_path) {
412 return false; 412 return false;
413 } 413 }
414 414
415 bool GetFileInfo(const FilePath& file_path, base::PlatformFileInfo* results) { 415 bool GetFileInfo(const FilePath& file_path, base::PlatformFileInfo* info) {
416 base::ThreadRestrictions::AssertIOAllowed(); 416 base::ThreadRestrictions::AssertIOAllowed();
417 if (!info)
418 return false;
417 419
418 WIN32_FILE_ATTRIBUTE_DATA attr; 420 WIN32_FILE_ATTRIBUTE_DATA attr;
419 if (!GetFileAttributesEx(file_path.value().c_str(), 421 if (!GetFileAttributesEx(file_path.value().c_str(),
420 GetFileExInfoStandard, &attr)) { 422 GetFileExInfoStandard, &attr)) {
421 return false; 423 return false;
422 } 424 }
423 425
424 ULARGE_INTEGER size; 426 ULARGE_INTEGER size;
425 size.HighPart = attr.nFileSizeHigh; 427 size.HighPart = attr.nFileSizeHigh;
426 size.LowPart = attr.nFileSizeLow; 428 size.LowPart = attr.nFileSizeLow;
427 results->size = size.QuadPart; 429 info->size = size.QuadPart;
428 430
429 results->is_directory = 431 info->is_directory =
430 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; 432 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0;
431 results->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime);
432 results->last_accessed = base::Time::FromFileTime(attr.ftLastAccessTime);
433 results->creation_time = base::Time::FromFileTime(attr.ftCreationTime);
434 433
434 // TODO(gavinp): What about reparse points?
435 info->is_symbolic_link = false; // Windows doesn't have symbolic links.
436
437 info->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime);
438 info->last_accessed = base::Time::FromFileTime(attr.ftLastAccessTime);
439 info->creation_time = base::Time::FromFileTime(attr.ftCreationTime);
435 return true; 440 return true;
436 } 441 }
437 442
438 FILE* OpenFile(const FilePath& filename, const char* mode) { 443 FILE* OpenFile(const FilePath& filename, const char* mode) {
439 base::ThreadRestrictions::AssertIOAllowed(); 444 base::ThreadRestrictions::AssertIOAllowed();
440 std::wstring w_mode = ASCIIToWide(std::string(mode)); 445 std::wstring w_mode = ASCIIToWide(std::string(mode));
441 return _wfsopen(filename.value().c_str(), w_mode.c_str(), _SH_DENYNO); 446 return _wfsopen(filename.value().c_str(), w_mode.c_str(), _SH_DENYNO);
442 } 447 }
443 448
444 FILE* OpenFile(const std::string& filename, const char* mode) { 449 FILE* OpenFile(const std::string& filename, const char* mode) {
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 // Like Move, this function is not transactional, so we just 755 // Like Move, this function is not transactional, so we just
751 // leave the copied bits behind if deleting from_path fails. 756 // leave the copied bits behind if deleting from_path fails.
752 // If to_path exists previously then we have already overwritten 757 // If to_path exists previously then we have already overwritten
753 // it by now, we don't get better off by deleting the new bits. 758 // it by now, we don't get better off by deleting the new bits.
754 } 759 }
755 return false; 760 return false;
756 } 761 }
757 762
758 } // namespace internal 763 } // namespace internal
759 } // namespace base 764 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698