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

Side by Side Diff: base/file_util_win.cc

Issue 19610: Safe browsing cleanup:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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
« no previous file with comments | « base/file_util_posix.cc ('k') | chrome/browser/safe_browsing/database_perftest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <shellapi.h> 8 #include <shellapi.h>
9 #include <shlobj.h> 9 #include <shlobj.h>
10 #include <time.h> 10 #include <time.h>
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 } 490 }
491 491
492 FILE* OpenFile(const std::string& filename, const char* mode) { 492 FILE* OpenFile(const std::string& filename, const char* mode) {
493 FILE* file; 493 FILE* file;
494 if (fopen_s(&file, filename.c_str(), mode) != 0) { 494 if (fopen_s(&file, filename.c_str(), mode) != 0) {
495 return NULL; 495 return NULL;
496 } 496 }
497 return file; 497 return file;
498 } 498 }
499 499
500 int ReadFile(const std::wstring& filename, char* data, int size) { 500 int ReadFile(const FilePath& filename, char* data, int size) {
501 ScopedHandle file(CreateFile(filename.c_str(), 501 ScopedHandle file(CreateFile(filename.value().c_str(),
502 GENERIC_READ, 502 GENERIC_READ,
503 FILE_SHARE_READ | FILE_SHARE_WRITE, 503 FILE_SHARE_READ | FILE_SHARE_WRITE,
504 NULL, 504 NULL,
505 OPEN_EXISTING, 505 OPEN_EXISTING,
506 FILE_FLAG_SEQUENTIAL_SCAN, 506 FILE_FLAG_SEQUENTIAL_SCAN,
507 NULL)); 507 NULL));
508 if (file == INVALID_HANDLE_VALUE) 508 if (file == INVALID_HANDLE_VALUE)
509 return -1; 509 return -1;
510 510
511 int ret_value; 511 int ret_value;
512 DWORD read; 512 DWORD read;
513 if (::ReadFile(file, data, size, &read, NULL) && read == size) { 513 if (::ReadFile(file, data, size, &read, NULL) && read == size) {
514 ret_value = static_cast<int>(read); 514 ret_value = static_cast<int>(read);
515 } else { 515 } else {
516 ret_value = -1; 516 ret_value = -1;
517 } 517 }
518 518
519 return ret_value; 519 return ret_value;
520 } 520 }
521 521
522 int WriteFile(const std::wstring& filename, const char* data, int size) { 522 int WriteFile(const FilePath& filename, const char* data, int size) {
523 ScopedHandle file(CreateFile(filename.c_str(), 523 ScopedHandle file(CreateFile(filename.value().c_str(),
524 GENERIC_WRITE, 524 GENERIC_WRITE,
525 0, 525 0,
526 NULL, 526 NULL,
527 CREATE_ALWAYS, 527 CREATE_ALWAYS,
528 0, 528 0,
529 NULL)); 529 NULL));
530 if (file == INVALID_HANDLE_VALUE) { 530 if (file == INVALID_HANDLE_VALUE) {
531 LOG(WARNING) << "CreateFile failed for path " << filename << 531 LOG(WARNING) << "CreateFile failed for path " << filename.value() <<
532 " error code=" << GetLastError() << 532 " error code=" << GetLastError() <<
533 " error text=" << win_util::FormatLastWin32Error(); 533 " error text=" << win_util::FormatLastWin32Error();
534 return -1; 534 return -1;
535 } 535 }
536 536
537 DWORD written; 537 DWORD written;
538 BOOL result = ::WriteFile(file, data, size, &written, NULL); 538 BOOL result = ::WriteFile(file, data, size, &written, NULL);
539 if (result && written == size) 539 if (result && written == size)
540 return static_cast<int>(written); 540 return static_cast<int>(written);
541 541
542 if (!result) { 542 if (!result) {
543 // WriteFile failed. 543 // WriteFile failed.
544 LOG(WARNING) << "writing file " << filename << 544 LOG(WARNING) << "writing file " << filename.value() <<
545 " failed, error code=" << GetLastError() << 545 " failed, error code=" << GetLastError() <<
546 " description=" << win_util::FormatLastWin32Error(); 546 " description=" << win_util::FormatLastWin32Error();
547 } else { 547 } else {
548 // Didn't write all the bytes. 548 // Didn't write all the bytes.
549 LOG(WARNING) << "wrote" << written << " bytes to " << filename << 549 LOG(WARNING) << "wrote" << written << " bytes to " <<
550 " expected " << size; 550 filename.value() << " expected " << size;
551 } 551 }
552 return -1; 552 return -1;
553 } 553 }
554 554
555 bool RenameFileAndResetSecurityDescriptor(const FilePath& source_file_path, 555 bool RenameFileAndResetSecurityDescriptor(const FilePath& source_file_path,
556 const FilePath& target_file_path) { 556 const FilePath& target_file_path) {
557 // The parameters to SHFileOperation must be terminated with 2 NULL chars. 557 // The parameters to SHFileOperation must be terminated with 2 NULL chars.
558 std::wstring source = source_file_path.value(); 558 std::wstring source = source_file_path.value();
559 std::wstring target = target_file_path.value(); 559 std::wstring target = target_file_path.value();
560 560
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 void PathComponents(const std::wstring& path, 751 void PathComponents(const std::wstring& path,
752 std::vector<std::wstring>* components) { 752 std::vector<std::wstring>* components) {
753 PathComponents(FilePath(path), components); 753 PathComponents(FilePath(path), components);
754 } 754 }
755 void ReplaceExtension(std::wstring* file_name, const std::wstring& extension) { 755 void ReplaceExtension(std::wstring* file_name, const std::wstring& extension) {
756 FilePath path(*file_name); 756 FilePath path(*file_name);
757 ReplaceExtension(&path, extension); 757 ReplaceExtension(&path, extension);
758 file_name->assign(path.value()); 758 file_name->assign(path.value());
759 } 759 }
760 } // namespace file_util 760 } // namespace file_util
OLDNEW
« no previous file with comments | « base/file_util_posix.cc ('k') | chrome/browser/safe_browsing/database_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698