OLD | NEW |
(Empty) | |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 import logging |
| 6 import os |
| 7 import zipfile |
| 8 |
| 9 |
| 10 def WriteToZipFile(zip_file, path, arc_path): |
| 11 """Recursively write |path| to |zip_file| as |arc_path|. |
| 12 |
| 13 zip_file: An open instance of zipfile.ZipFile. |
| 14 path: An absolute path to the file or directory to be zipped. |
| 15 arc_path: A relative path within the zip file to which the file or directory |
| 16 located at |path| should be written. |
| 17 """ |
| 18 if os.path.isdir(path): |
| 19 for dir_path, _, file_names in os.walk(path): |
| 20 dir_arc_path = os.path.join(arc_path, os.path.relpath(dir_path, path)) |
| 21 logging.debug('dir: %s -> %s', dir_path, dir_arc_path) |
| 22 zip_file.write(dir_path, dir_arc_path, zipfile.ZIP_STORED) |
| 23 for f in file_names: |
| 24 file_path = os.path.join(dir_path, f) |
| 25 file_arc_path = os.path.join(dir_arc_path, f) |
| 26 logging.debug('file: %s -> %s', file_path, file_arc_path) |
| 27 zip_file.write(file_path, file_arc_path, zipfile.ZIP_DEFLATED) |
| 28 else: |
| 29 logging.debug('file: %s -> %s', path, arc_path) |
| 30 zip_file.write(path, arc_path, zipfile.ZIP_DEFLATED) |
| 31 |
OLD | NEW |