Résolu Zipper avec l'assembly net en filtrant sur des types de fichiers

Plus d'informations
il y a 1 an 4 mois - il y a 1 an 4 mois #32853 par kroum
Bonjour,

Je voudrais zipper des fichiers qui sont localisés dans un répertoire 
mais j'aimerai utiliser a tout prix l'assembly System.IO.Compression.FileSystem pour créer un zip
car avec la commande Compress-Archive , le process prend énormément de temps et consomme énormément de mémoire
Anciennement  "a eviter":
Compress-Archive "D:\CF\Undelivr\*.cfmail" -DestinationPath "D:\Mail\Undelivr\$name" -CompressionLevel Optimal

voilà mon début de script 
mais je sèche pour filtrer sur les extensions

$source="D:\CF\Undelivr\*.cfmail"
$dest="D:\Mail\Undelivr\$name"
# Compression level. Optimal means smallest size, even if it takes a little longer to compress
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
# Whether or not to include root directory (if zipping a directory) in the archive
$includeBaseDirectory = $True
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::CreateFromDirectory("$source","$dest",$compressionLevel,$includeBaseDirectory)


Merci de votre aide
Dernière édition: il y a 1 an 4 mois par kroum.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 4 mois #32854 par kroum
complément d'info:
j'aimerai zipper des fichiers présent dans un répertoire mais uniquement les fichiers
avec l'extension *.cfmail, car a terme ce répertoire contiendra des zip
Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 an 4 mois - il y a 1 an 4 mois #32855 par kroum
Bon finalement, j'ai trouvé une solution ,pas  simple mais fonctionnel
Dans un premier temps ,c'est de créer une archive vide 

$name=get-date -Format "yyyyMMdd_HHmmss"
$source="D:\CF\Undelivr\*.cfmail"
#Créer une archive vide à un emplacement
$zipFilePath = "D:\CF\Undelivr\"+$name
$zip = [System.IO.Compression.ZipFile]::Open($zipFilePath, 'create')
#close the locks on that file
$zip.Dispose()
#Activer le mode update
$zip = [System.IO.Compression.ZipFile]::Open($zipFilePath, 'update')
#permet d'ajouter les fichiers en filtrant sur l'extension souhaité
Get-ChildItem $source| ForEach-Object {[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip, $_.FullName, (Split-Path $_.FullName -Leaf), $compressionLevel)}
$zip.Dispose()



 
Dernière édition: il y a 1 an 4 mois par kroum.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.065 secondes
Propulsé par Kunena