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 |