19 declare(strict_types=1);
44 $this->zip_options = $this->archives->zipOptions();
45 $this->unzip_options = $this->archives->unzipOptions();
52 string $directory_to_zip,
53 string $path_to_output_zip,
54 bool $ensure_top_directory =
false 56 $directory_to_zip = $this->normalizePath($directory_to_zip);
57 $path_to_output_zip = $this->normalizePath($path_to_output_zip);
59 $zip = $this->archives->zip(
62 ->withZipOutputPath(dirname($path_to_output_zip))
63 ->withZipOutputName(basename($path_to_output_zip))
64 ->withDirectoryHandling($ensure_top_directory ? ZipDirectoryHandling::ENSURE_SINGLE_TOP_DIR : ZipDirectoryHandling::KEEP_STRUCTURE)
67 $zip->addDirectory($directory_to_zip);
68 $zip_stream = $zip->get();
70 return $zip_stream->getSize() > 0;
78 ?
string $extract_to_path =
null,
79 bool $overwrite =
false,
81 bool $ensure_top_directory =
false 83 $extract_to_path ??= dirname($path_to_zip);
87 $dir_handling = $ensure_top_directory ? ZipDirectoryHandling::ENSURE_SINGLE_TOP_DIR : ZipDirectoryHandling::KEEP_STRUCTURE;
90 $unzip = $this->archives->unzip(
91 Streams::ofResource(fopen($path_to_zip,
'rb')),
93 ->withZipOutputPath($extract_to_path)
94 ->withOverwrite($overwrite)
95 ->withDirectoryHandling($dir_handling)
97 return $unzip->extract();
Will keep the top directory of the ZIP file if there is one (simple unzip).
zip(string $directory_to_zip, string $path_to_output_zip, bool $ensure_top_directory=false)
UnzipOptions $unzip_options
unzip(string $path_to_zip, ?string $extract_to_path=null, bool $overwrite=false, bool $flat=false, bool $ensure_top_directory=false)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null