| 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/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "net/base/file_stream.h" | 9 #include "net/base/file_stream.h" |
| 10 #include "third_party/zlib/contrib/minizip/unzip.h" | 10 #include "third_party/zlib/contrib/minizip/unzip.h" |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 } | 251 } |
| 252 | 252 |
| 253 if (ZIP_OK != zipCloseFileInZip(zip_file)) { | 253 if (ZIP_OK != zipCloseFileInZip(zip_file)) { |
| 254 LOG(ERROR) << "Could not close zip file entry " << str_path; | 254 LOG(ERROR) << "Could not close zip file entry " << str_path; |
| 255 return false; | 255 return false; |
| 256 } | 256 } |
| 257 | 257 |
| 258 return success; | 258 return success; |
| 259 } | 259 } |
| 260 | 260 |
| 261 bool Zip(const FilePath& src_dir, const FilePath& dest_file) { | 261 bool Zip(const FilePath& src_dir, const FilePath& dest_file, |
| 262 bool include_hidden_files) { |
| 262 DCHECK(file_util::DirectoryExists(src_dir)); | 263 DCHECK(file_util::DirectoryExists(src_dir)); |
| 263 | 264 |
| 264 #if defined(OS_WIN) | 265 #if defined(OS_WIN) |
| 265 zlib_filefunc_def zip_funcs; | 266 zlib_filefunc_def zip_funcs; |
| 266 fill_win32_filefunc(&zip_funcs); | 267 fill_win32_filefunc(&zip_funcs); |
| 267 zip_funcs.zopen_file = ZipOpenFunc; | 268 zip_funcs.zopen_file = ZipOpenFunc; |
| 268 #endif | 269 #endif |
| 269 | 270 |
| 270 #if defined(OS_POSIX) | 271 #if defined(OS_POSIX) |
| 271 std::string dest_file_str = dest_file.value(); | 272 std::string dest_file_str = dest_file.value(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 284 } | 285 } |
| 285 | 286 |
| 286 bool success = true; | 287 bool success = true; |
| 287 file_util::FileEnumerator file_enumerator( | 288 file_util::FileEnumerator file_enumerator( |
| 288 src_dir, true, // recursive | 289 src_dir, true, // recursive |
| 289 static_cast<file_util::FileEnumerator::FILE_TYPE>( | 290 static_cast<file_util::FileEnumerator::FILE_TYPE>( |
| 290 file_util::FileEnumerator::FILES | | 291 file_util::FileEnumerator::FILES | |
| 291 file_util::FileEnumerator::DIRECTORIES)); | 292 file_util::FileEnumerator::DIRECTORIES)); |
| 292 for (FilePath path = file_enumerator.Next(); !path.value().empty(); | 293 for (FilePath path = file_enumerator.Next(); !path.value().empty(); |
| 293 path = file_enumerator.Next()) { | 294 path = file_enumerator.Next()) { |
| 295 if (!include_hidden_files && path.BaseName().ToWStringHack()[0] == L'.') |
| 296 continue; |
| 297 |
| 294 if (!AddEntryToZip(zip_file, path, src_dir)) { | 298 if (!AddEntryToZip(zip_file, path, src_dir)) { |
| 295 success = false; | 299 success = false; |
| 296 return false; | 300 return false; |
| 297 } | 301 } |
| 298 } | 302 } |
| 299 | 303 |
| 300 if (ZIP_OK != zipClose(zip_file, NULL)) { // global comment | 304 if (ZIP_OK != zipClose(zip_file, NULL)) { // global comment |
| 301 LOG(ERROR) << "Error closing zip file " << dest_file_str; | 305 LOG(ERROR) << "Error closing zip file " << dest_file_str; |
| 302 return false; | 306 return false; |
| 303 } | 307 } |
| 304 | 308 |
| 305 return success; | 309 return success; |
| 306 } | 310 } |
| OLD | NEW |