From 54ca53de5e7df9e0c9bd9e25002386d346010594 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Thu, 21 Jul 2011 18:21:14 +0200 Subject: remove_all() for zip fileformat first drawing --- lib/archive.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'lib') diff --git a/lib/archive.py b/lib/archive.py index fb6dfa2..aa2a47f 100644 --- a/lib/archive.py +++ b/lib/archive.py @@ -40,6 +40,28 @@ class ZipStripper(GenericArchiveStripper): zipin.close() return metadata + def remove_all(self): + folder_list = [] + zipin = zipfile.ZipFile(self.filename, 'r') + zipout = zipfile.ZipFile(self.filename + parser.POSTFIX, 'w', + allowZip64=True) + for item in zipin.infolist(): + zipin.extract(item) + if os.path.isfile(item.filename): + try: + cfile = mat.create_class_file(item.filename, False) + cfile.remove_all() + logging.debug('Processing %s from %s' % (item.filename, + self.filename)) + except: + print('%s\' filefomart is not supported'%item.filename) + zipout.write(item.filename) + else: + self.folder_list.insert(0, item.filename) + logging.info('%s treated' % self.filename) + self.remove_folder() + zipin.close() + zipout.close() class TarStripper(GenericArchiveStripper): def _remove(self, current_file): -- cgit v1.3