MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / FileHeader

Method FileHeader

tools/python-3.11.9-amd64/Lib/zipfile.py:439–485  ·  view source on GitHub ↗

Return the per-file header as a bytes object. When the optional zip64 arg is None rather than a bool, we will decide based upon the file_size and compress_size, if known, False otherwise.

(self, zip64=None)

Source from the content-addressed store, hash-verified

437 return ''.join(result)
438
439 def FileHeader(self, zip64=None):
440 """Return the per-file header as a bytes object.
441
442 When the optional zip64 arg is None rather than a bool, we will
443 decide based upon the file_size and compress_size, if known,
444 False otherwise.
445 """
446 dt = self.date_time
447 dosdate = (dt[0] - 1980) << 9 | dt[1] << 5 | dt[2]
448 dostime = dt[3] << 11 | dt[4] << 5 | (dt[5] // 2)
449 if self.flag_bits & _MASK_USE_DATA_DESCRIPTOR:
450 # Set these to zero because we write them after the file data
451 CRC = compress_size = file_size = 0
452 else:
453 CRC = self.CRC
454 compress_size = self.compress_size
455 file_size = self.file_size
456
457 extra = self.extra
458
459 min_version = 0
460 if zip64 is None:
461 # We always explicitly pass zip64 within this module.... This
462 # remains for anyone using ZipInfo.FileHeader as a public API.
463 zip64 = file_size > ZIP64_LIMIT or compress_size > ZIP64_LIMIT
464 if zip64:
465 fmt = '<HHQQ'
466 extra = extra + struct.pack(fmt,
467 1, struct.calcsize(fmt)-4, file_size, compress_size)
468 file_size = 0xffffffff
469 compress_size = 0xffffffff
470 min_version = ZIP64_VERSION
471
472 if self.compress_type == ZIP_BZIP2:
473 min_version = max(BZIP2_VERSION, min_version)
474 elif self.compress_type == ZIP_LZMA:
475 min_version = max(LZMA_VERSION, min_version)
476
477 self.extract_version = max(min_version, self.extract_version)
478 self.create_version = max(min_version, self.create_version)
479 filename, flag_bits = self._encodeFilenameFlags()
480 header = struct.pack(structFileHeader, stringFileHeader,
481 self.extract_version, self.reserved, flag_bits,
482 self.compress_type, dostime, dosdate, CRC,
483 compress_size, file_size,
484 len(filename), len(extra))
485 return header + filename + extra
486
487 def _encodeFilenameFlags(self):
488 try:

Callers 3

mkdirMethod · 0.95
closeMethod · 0.80
_open_to_writeMethod · 0.80

Calls 3

_encodeFilenameFlagsMethod · 0.95
maxFunction · 0.85
packMethod · 0.45

Tested by

no test coverage detected