@@ -766,20 +766,22 @@ def PackCatFileFromZipFile(infile, outfile, compression="auto", checksumtype="cr
766766 return False ;
767767 if (not zipfile .is_zipfile (infile )):
768768 return False ;
769- zipfp = zipfile .ZipFile (infile , "r" );
769+ zipfp = zipfile .ZipFile (infile , "r" , allowZip64 = True );
770+ ziptest = zipfp .testzip ();
770771 for member in zipfp .infolist ():
771772 fname = member .filename ;
773+ zipinfo = zipfp .getinfo (fname );
772774 if (verbose ):
773775 logging .info (fname );
774- if (hasattr ( member , "is_file" ) and member .is_file ()):
776+ if (not member .is_dir ()):
775777 fpremode = format (int (stat .S_IFREG + 438 ), 'x' ).lower ();
776- if (hasattr ( member , "is_dir" ) and member .is_dir ()):
778+ if (member .is_dir ()):
777779 fpremode = format (int (stat .S_IFDIR + 511 ), 'x' ).lower ();
778780 flinkcount = 0 ;
779781 ftype = 0 ;
780- if (hasattr ( member , "is_file" ) and member .is_file ()):
782+ if (not member .is_dir ()):
781783 ftype = 0 ;
782- if (hasattr ( member , "is_dir" ) and member .is_dir ()):
784+ if (member .is_dir ()):
783785 ftype = 5 ;
784786 flinkname = "" ;
785787 fcurfid = format (int (curfid ), 'x' ).lower ();
@@ -797,13 +799,11 @@ def PackCatFileFromZipFile(infile, outfile, compression="auto", checksumtype="cr
797799 fmtime = format (int (time .mktime (member .date_time + (0 , 0 , - 1 ))), 'x' ).lower ();
798800 fctime = format (int (time .mktime (member .date_time + (0 , 0 , - 1 ))), 'x' ).lower ();
799801 fbtime = format (int (time .mktime (member .date_time + (0 , 0 , - 1 ))), 'x' ).lower ();
800- if (hasattr (member , "is_file" ) and member .is_file ()):
801- #33206
802+ if (not member .is_dir ()):
802803 fmode = format (int (stat .S_IFREG + 438 ), 'x' ).lower ();
803804 fchmode = format (int (stat .S_IMODE (int (stat .S_IFREG + 438 ))), 'x' ).lower ();
804805 ftypemod = format (int (stat .S_IFMT (int (stat .S_IFREG + 438 ))), 'x' ).lower ();
805- if (hasattr (member , "is_dir" ) and member .is_dir ()):
806- #16895
806+ if (member .is_dir ()):
807807 fmode = format (int (stat .S_IFDIR + 511 ), 'x' ).lower ();
808808 fchmode = format (int (stat .S_IMODE (int (stat .S_IFDIR + 511 ))), 'x' ).lower ();
809809 ftypemod = format (int (stat .S_IFMT (int (stat .S_IFDIR + 511 ))), 'x' ).lower ();
@@ -1896,7 +1896,7 @@ def CatFileListFiles(infile, seekstart=0, seekend=0, skipchecksum=False, verbose
18961896 fgprint = listcatfiles [lcfi ]['fgname' ];
18971897 if (len (fgprint )<= 0 ):
18981898 fgprint = listcatfiles [lcfi ]['fgid' ];
1899- logging .info (permissionstr + " " + str (str (fuprint ) + "/" + str (fgprint ) + " " + str (listcatfiles [lcfi ]['fsize' ]).rjust (15 ) + " " + datetime .datetime .utcfromtimestamp (listcatfiles [lcfi ]['fmtime' ]).strftime ('%Y-%m-%d %H:%M' ) + " " + printfname ));
1899+ logging .info (stat . filemode ( listcatfiles [ lcfi ][ 'fmode' ]) + " " + str (str (fuprint ) + "/" + str (fgprint ) + " " + str (listcatfiles [lcfi ]['fsize' ]).rjust (15 ) + " " + datetime .datetime .utcfromtimestamp (listcatfiles [lcfi ]['fmtime' ]).strftime ('%Y-%m-%d %H:%M' ) + " " + printfname ));
19001900 lcfi = lcfi + 1 ;
19011901 if (returnfp ):
19021902 return listcatfiles ['catfp' ];
@@ -1952,7 +1952,7 @@ def TarFileListFiles(infile, verbose=False, returnfp=False):
19521952 fgprint = member .gname ;
19531953 if (len (fgprint )<= 0 ):
19541954 fgprint = member .gid ;
1955- logging .info (permissionstr + " " + str (str (fuprint ) + "/" + str (fgprint ) + " " + str (member .size ).rjust (15 ) + " " + datetime .datetime .utcfromtimestamp (member .mtime ).strftime ('%Y-%m-%d %H:%M' ) + " " + printfname ));
1955+ logging .info (stat . filemode ( member . mode ) + " " + str (str (fuprint ) + "/" + str (fgprint ) + " " + str (member .size ).rjust (15 ) + " " + datetime .datetime .utcfromtimestamp (member .mtime ).strftime ('%Y-%m-%d %H:%M' ) + " " + printfname ));
19561956 lcfi = lcfi + 1 ;
19571957 if (returnfp ):
19581958 return listcatfiles ['catfp' ];
0 commit comments