]> granicus.if.org Git - python/commitdiff
Make sure path names inserted into ZIP files are normalized to use "/" as
authorFred Drake <fdrake@acm.org>
Thu, 19 Jul 2001 19:44:25 +0000 (19:44 +0000)
committerFred Drake <fdrake@acm.org>
Thu, 19 Jul 2001 19:44:25 +0000 (19:44 +0000)
the directory separator, as required by the format specification.

This closes SF bug #440693.

Lib/zipfile.py

index 8a113a0fe106d944d56efb1c5fdbc588f6e62fd6..bd9df9b99d1491ab6df67ff84ae87a384ba69705 100644 (file)
@@ -89,7 +89,7 @@ class ZipInfo:
     """Class with attributes describing each file in the ZIP archive."""
 
     def __init__(self, filename="NoName", date_time=(1980,1,1,0,0,0)):
-        self.filename = filename        # Name of the file in the archive
+        self.filename = _normpath(filename) # Name of the file in the archive
         self.date_time = date_time      # year, month, day, hour, min, sec
         # Standard values:
         self.compress_type = ZIP_STORED # Type of compression for the file
@@ -130,6 +130,17 @@ class ZipInfo:
         return header + self.filename + self.extra
 
 
+# This is used to ensure paths in generated ZIP files always use
+# forward slashes as the directory separator, as required by the
+# ZIP format specification.
+if os.sep != "/":
+    def _normpath(path):
+        return path.replace(os.sep, "/")
+else:
+    def _normpath(path):
+        return path
+
+
 class ZipFile:
     """ Class with methods to open, read, write, close, list zip files.