| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 "chrome/common/zip.h" | 5 #include "chrome/common/zip.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/string_split.h" | 9 #include "base/string_split.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 } | 199 } |
| 200 unzClose(zip_file); | 200 unzClose(zip_file); |
| 201 return ret; | 201 return ret; |
| 202 } | 202 } |
| 203 | 203 |
| 204 static bool AddFileToZip(zipFile zip_file, const FilePath& src_dir) { | 204 static bool AddFileToZip(zipFile zip_file, const FilePath& src_dir) { |
| 205 net::FileStream stream; | 205 net::FileStream stream; |
| 206 int flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ; | 206 int flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ; |
| 207 if (stream.Open(src_dir, flags) != 0) { | 207 if (stream.Open(src_dir, flags) != 0) { |
| 208 LOG(ERROR) << "Could not open stream for path " | 208 LOG(ERROR) << "Could not open stream for path " |
| 209 << WideToASCII(src_dir.ToWStringHack()); | 209 << src_dir.value(); |
| 210 return false; | 210 return false; |
| 211 } | 211 } |
| 212 | 212 |
| 213 int num_bytes; | 213 int num_bytes; |
| 214 char buf[kZipBufSize]; | 214 char buf[kZipBufSize]; |
| 215 do { | 215 do { |
| 216 num_bytes = stream.Read(buf, kZipBufSize, NULL); | 216 num_bytes = stream.Read(buf, kZipBufSize, NULL); |
| 217 if (num_bytes > 0) { | 217 if (num_bytes > 0) { |
| 218 if (ZIP_OK != zipWriteInFileInZip(zip_file, buf, num_bytes)) { | 218 if (ZIP_OK != zipWriteInFileInZip(zip_file, buf, num_bytes)) { |
| 219 LOG(ERROR) << "Could not write data to zip for path " | 219 LOG(ERROR) << "Could not write data to zip for path " |
| 220 << WideToASCII(src_dir.ToWStringHack()); | 220 << src_dir.value(); |
| 221 return false; | 221 return false; |
| 222 } | 222 } |
| 223 } | 223 } |
| 224 } while (num_bytes > 0); | 224 } while (num_bytes > 0); |
| 225 | 225 |
| 226 return true; | 226 return true; |
| 227 } | 227 } |
| 228 | 228 |
| 229 static bool AddEntryToZip(zipFile zip_file, const FilePath& path, | 229 static bool AddEntryToZip(zipFile zip_file, const FilePath& path, |
| 230 const FilePath& root_path) { | 230 const FilePath& root_path) { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 } | 289 } |
| 290 | 290 |
| 291 bool success = true; | 291 bool success = true; |
| 292 file_util::FileEnumerator file_enumerator( | 292 file_util::FileEnumerator file_enumerator( |
| 293 src_dir, true, // recursive | 293 src_dir, true, // recursive |
| 294 static_cast<file_util::FileEnumerator::FILE_TYPE>( | 294 static_cast<file_util::FileEnumerator::FILE_TYPE>( |
| 295 file_util::FileEnumerator::FILES | | 295 file_util::FileEnumerator::FILES | |
| 296 file_util::FileEnumerator::DIRECTORIES)); | 296 file_util::FileEnumerator::DIRECTORIES)); |
| 297 for (FilePath path = file_enumerator.Next(); !path.value().empty(); | 297 for (FilePath path = file_enumerator.Next(); !path.value().empty(); |
| 298 path = file_enumerator.Next()) { | 298 path = file_enumerator.Next()) { |
| 299 if (!include_hidden_files && path.BaseName().ToWStringHack()[0] == L'.') | 299 if (!include_hidden_files && path.BaseName().value()[0] == '.') |
| 300 continue; | 300 continue; |
| 301 | 301 |
| 302 if (!AddEntryToZip(zip_file, path, src_dir)) { | 302 if (!AddEntryToZip(zip_file, path, src_dir)) { |
| 303 success = false; | 303 success = false; |
| 304 return false; | 304 return false; |
| 305 } | 305 } |
| 306 } | 306 } |
| 307 | 307 |
| 308 if (ZIP_OK != zipClose(zip_file, NULL)) { // global comment | 308 if (ZIP_OK != zipClose(zip_file, NULL)) { // global comment |
| 309 LOG(ERROR) << "Error closing zip file " << dest_file_str; | 309 LOG(ERROR) << "Error closing zip file " << dest_file_str; |
| 310 return false; | 310 return false; |
| 311 } | 311 } |
| 312 | 312 |
| 313 return success; | 313 return success; |
| 314 } | 314 } |
| OLD | NEW |