| OLD | NEW |
| 1 // Copyright (c) 2006-2008 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 <shellapi.h> | 9 #include <shellapi.h> |
| 10 #include <shlobj.h> | 10 #include <shlobj.h> |
| 11 #include <time.h> | 11 #include <time.h> |
| (...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 size.LowPart = attr.nFileSizeLow; | 582 size.LowPart = attr.nFileSizeLow; |
| 583 results->size = size.QuadPart; | 583 results->size = size.QuadPart; |
| 584 | 584 |
| 585 results->is_directory = | 585 results->is_directory = |
| 586 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; | 586 (attr.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; |
| 587 results->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime); | 587 results->last_modified = base::Time::FromFileTime(attr.ftLastWriteTime); |
| 588 | 588 |
| 589 return true; | 589 return true; |
| 590 } | 590 } |
| 591 | 591 |
| 592 bool SetLastModifiedTime(const FilePath& file_path, base::Time last_modified) { |
| 593 FILETIME timestamp(last_modified.ToFileTime()); |
| 594 ScopedHandle file_handle( |
| 595 CreateFile(file_path.value().c_str(), FILE_WRITE_ATTRIBUTES, |
| 596 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, |
| 597 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)); |
| 598 BOOL ret = SetFileTime(file_handle.Get(), NULL, ×tamp, ×tamp); |
| 599 return ret != 0; |
| 600 } |
| 601 |
| 592 FILE* OpenFile(const FilePath& filename, const char* mode) { | 602 FILE* OpenFile(const FilePath& filename, const char* mode) { |
| 593 std::wstring w_mode = ASCIIToWide(std::string(mode)); | 603 std::wstring w_mode = ASCIIToWide(std::string(mode)); |
| 594 FILE* file; | 604 FILE* file; |
| 595 if (_wfopen_s(&file, filename.value().c_str(), w_mode.c_str()) != 0) { | 605 if (_wfopen_s(&file, filename.value().c_str(), w_mode.c_str()) != 0) { |
| 596 return NULL; | 606 return NULL; |
| 597 } | 607 } |
| 598 return file; | 608 return file; |
| 599 } | 609 } |
| 600 | 610 |
| 601 FILE* OpenFile(const std::string& filename, const char* mode) { | 611 FILE* OpenFile(const std::string& filename, const char* mode) { |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 } | 870 } |
| 861 | 871 |
| 862 bool HasFileBeenModifiedSince(const FileEnumerator::FindInfo& find_info, | 872 bool HasFileBeenModifiedSince(const FileEnumerator::FindInfo& find_info, |
| 863 const base::Time& cutoff_time) { | 873 const base::Time& cutoff_time) { |
| 864 long result = CompareFileTime(&find_info.ftLastWriteTime, | 874 long result = CompareFileTime(&find_info.ftLastWriteTime, |
| 865 &cutoff_time.ToFileTime()); | 875 &cutoff_time.ToFileTime()); |
| 866 return result == 1 || result == 0; | 876 return result == 1 || result == 0; |
| 867 } | 877 } |
| 868 | 878 |
| 869 } // namespace file_util | 879 } // namespace file_util |
| OLD | NEW |