Чтобы исключить каталог при архивировании файлов, вы можете использовать различные методы в зависимости от языка программирования или инструментов, которые вы используете. Вот несколько примеров на разных языках:
-
Python:
import zipfile import os def zip_directory(directory_path, zip_path, exclude_directory): with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zip_file: for root, _, files in os.walk(directory_path): if exclude_directory in root: continue for file in files: file_path = os.path.join(root, file) zip_file.write(file_path, os.path.relpath(file_path, directory_path)) directory_path = '/path/to/source/directory' zip_path = 'output.zip' exclude_directory = '/path/to/exclude/directory' zip_directory(directory_path, zip_path, exclude_directory)
-
Bash (с помощью команды
zip
):#!/bin/bash source_dir="/path/to/source/directory" exclude_dir="/path/to/exclude/directory" output_zip="output.zip" cd "$source_dir" zip -r "$output_zip" . -x "$exclude_dir/*"
-
PowerShell:
$sourceDir = 'C:\path\to\source\directory' $excludeDir = 'C:\path\to\exclude\directory' $outputZip = 'output.zip' Add-Type -A 'System.IO.Compression.FileSystem' [System.IO.Compression.ZipFile]::CreateFromDirectory($sourceDir, $outputZip, 'Optimal', $true) $zipArchive = [System.IO.Compression.ZipFile]::Open($outputZip, 'Update') $files = Get-ChildItem $zipArchive | Where-Object { $_.FullName -notlike "$excludeDir/*" } foreach ($file in $files) { $zipArchive.ExtractToFile($file.FullName, "$sourceDir\$($file.Name)", $true) } $zipArchive.Dispose()
Это всего лишь несколько примеров на популярных языках. Конкретный метод, который вы выберете, будет зависеть от вашей среды программирования и требований.