Page
Library
Module
Module type
Parameter
Class
Class type
Source
Zipc.FileSourceArchive file data.
The type for file data.
val make :
?version_made_by:Zipc_deflate.uint16 ->
?version_needed_to_extract:Zipc_deflate.uint16 ->
?gp_flags:Zipc_deflate.uint16 ->
?start:int ->
?compressed_size:int ->
compression:compression ->
string ->
decompressed_size:int ->
decompressed_crc_32:Zipc_deflate.Crc_32.t ->
(t, string) resultmake creates file data with given properties, see their corresponding accessors for details. The defaults are:
start defaults to 0.compressed_size defaults to the string's length minus start.version_made_by defaults to 0x314 indicating UNIX (for encoding file permissions) and PKZIP 2.0.version_needed_to_extract defaults to 20 indicating PKZIP 2.0. This may need tweaking depending on compression but decoders likely do not care (see 4.4.3.2 in the specification).gp_flags defaults to 0x800, indicating UTF-8 encoded filenames.Error _ is returned with a suitable error message if any of the given length exceeds 4294967295, see max_size. Negative lengths raise Invalid_argument.
stored_of_binary_string s is s as Stored (no compression) file data. This errors if s exceeds max_size. start defaults to 0 and len to String.length s - start.
val deflate_of_binary_string :
?level:Zipc_deflate.level ->
?start:int ->
?len:int ->
string ->
(t, string) resultdeflate_of_binary_string s deflates s and returns it as Deflate file data. level defaults to `Default. This errors if s or its compressed size exceeds max_size. start defaults to 0 and len to String.length s - start.
compression file is the compression format of file.
start file is the start index in compressed_bytes.
compressed_size file is the byte size in compressed_bytes.
compressed_bytes file are the bytes of file in compression format, in the range defined by start and compressed_size.
compressed_bytes_to_binary_string file is the range of compressed_bytes as a tight string.
decompressed_size file is metadata indicating the size in bytes of the decompressed data of file.
decompressed_crc_32 file is metadata indicating the CRC-32 checksum of the decompressed data of file.
version_made_by file is the version made by field of file. Not really interested but we keep it to be able to update archives without loosing too much information.
version_needed_to_extract file is the version needed to extract field. See version_made_by.
gp_flags file is the general purpose bit flag field of file. In particular it tells us whether the file is_encrypted.
is_encrypted file is true iff file is encrypted. Zipc has no support for file encryption.
can_extract file is true iff Zipc knows how to extract the bytes of file. In other words if file is not encrypted and its compression is either Stored or Deflate.
to_binary_string file is the decompressed data of file. This only supports Stored or Deflate formats and errors if:
can_extract is true).Deflate data is malformed.decompressed_size or Sys.max_string_lengthdecompressed_crc_32.to_binary_string_no_crc_check is like to_binary_string except it does not check the CRC-32 of the decompressed data against decompressed_crc_32, it returns it along with the data.
max_size is the maximal file size representable on this platform in the file metadata. This is the minimum between Int.max_int and 4294967295 (4Go), the maximum file size in non-ZIP64 ZIP archives. Archives that have members whose size exceeds this value error on Zipc.of_binary_string.