OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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> |
11 #include <shlobj.h> | 11 #include <shlobj.h> |
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 return false; | 660 return false; |
661 } | 661 } |
662 if (!CreateDirectory(parent_path)) { | 662 if (!CreateDirectory(parent_path)) { |
663 DLOG(WARNING) << "Failed to create one of the parent directories."; | 663 DLOG(WARNING) << "Failed to create one of the parent directories."; |
664 return false; | 664 return false; |
665 } | 665 } |
666 | 666 |
667 if (!::CreateDirectory(full_path_str, NULL)) { | 667 if (!::CreateDirectory(full_path_str, NULL)) { |
668 DWORD error_code = ::GetLastError(); | 668 DWORD error_code = ::GetLastError(); |
669 if (error_code == ERROR_ALREADY_EXISTS && DirectoryExists(full_path)) { | 669 if (error_code == ERROR_ALREADY_EXISTS && DirectoryExists(full_path)) { |
670 // This error code doesn't indicate whether we were racing with someone | 670 // This error code ERROR_ALREADY_EXISTS doesn't indicate whether we |
671 // creating the same directory, or a file with the same path, therefore | 671 // were racing with someone creating the same directory, or a file |
672 // we check. | 672 // with the same path. If DirectoryExists() returns true, we lost the |
| 673 // race to create the same directory. |
673 return true; | 674 return true; |
674 } else { | 675 } else { |
675 LOG(WARNING) << "Failed to create directory " << full_path_str | 676 LOG(WARNING) << "Failed to create directory " << full_path_str |
676 << ", last error is " << error_code << "."; | 677 << ", last error is " << error_code << "."; |
677 return false; | 678 return false; |
678 } | 679 } |
679 } else { | 680 } else { |
680 return true; | 681 return true; |
681 } | 682 } |
682 } | 683 } |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1118 uint8 unused = *(touch + offset); | 1119 uint8 unused = *(touch + offset); |
1119 offset += step_size; | 1120 offset += step_size; |
1120 } | 1121 } |
1121 FreeLibrary(dll_module); | 1122 FreeLibrary(dll_module); |
1122 } | 1123 } |
1123 | 1124 |
1124 return true; | 1125 return true; |
1125 } | 1126 } |
1126 | 1127 |
1127 } // namespace file_util | 1128 } // namespace file_util |
OLD | NEW |