Name

Get-ZipFile

SYNOPSIS

Obtient et paramètre un objet archive à partir d'un fichier Zip.

SYNTAX

Get-ZipFile [-Path] <String[]> [-Options <SelfExtractorSaveOptions>] [-ZipErrorAction <ZipErrorAction>] [-Encryption <EncryptionAlgorithm>] [-Password <String>] [-Encoding <Encoding>] [-ProgressID <Int32>] [-List] [-SortEntries] [-UnixTimeFormat] [-WindowsTimeFormat] [<CommonParameters>]

Get-ZipFile [-Path] <String[]> [-ReadOptions <ReadOptions>] [-Options <SelfExtractorSaveOptions>] [-ZipErrorAction <ZipErrorAction>] [-Encryption <EncryptionAlgorithm>] [-Password <String>] [-List] [-SortEntries] [-UnixTimeFormat] [-WindowsTimeFormat] [<CommonParameters>]

DESCRIPTION

Obtient un objet archive à partir d'un fichier Zip. L'objet archive ne contient que le catalogue, une liste d'objets de type ZipEntry, pour récupérer le contenu d'une entrée du catalogue vous devez l'extraire sur un lecteur du système de fichier.

Cette fonction paramètre également les propriétés les plus usuelles de l'objet archive. L'objet archive renvoyé est verrouillé tant que vous n'appelez pas sa méthode Close(). Par contre, l'usage du paramètre -List ne verrouille pas l'archive.

PARAMETERS

-Path <String[]>

Nom du ou des fichiers ZIP à lire. Vous pouvez préciser des noms de fichier comportant des jokers.

Required? True
Position? 1
Default value  
Accept pipeline input? true (ByValue)
Accept wildcard characters? False

-Options <SelfExtractorSaveOptions>

Options utilisées lors de la création d'une archive auto extractible (cf. New-ZipSfxOptions).

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-ZipErrorAction <ZipErrorAction>

Précise le mode de gestion des erreurs.

Values : Throw, Skip, Retry, InvokeErrorEvent

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-Encryption <EncryptionAlgorithm>

Type de cryptage utilisé lors de l'opération de compression. Nécessite de préciser un mot de passe (cf. le paramètre Password).

Values : None, PkzipWeak, WinZipAes128, WinZipAes256, Unsupported

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-Password <String>

Précise le mot de passe nécessaire à la lecture d'une archive encryptée.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-Encoding <Encoding>

Type d'encodage de l'archive. Les valeurs possibles sont :

-ASCII           : encodage pour le jeu de caractères ASCII (7 bits).

-BigEndianUnicode : encodage pour le format UTF-16 qui utilise l'ordre d'octet avec primauté des octets de poids fort (big-endian).

-Default          : encodage pour la page de codes ANSI actuelle du système d'exploitation. -Unicode          : encodage pour le format UTF-16 avec primauté des octets de poids faible (little-endian).

-UTF32           : encodage pour le format UTF-32 avec primauté des octets de poids faible (little-endian). -UTF7           : encodage pour le format UTF-7.

-UTF8           : encodage pour le format UTF-8.

A moins d'être assuré que celui sélectionné corresponde à celui utilisé lors de la compression de l'archive, l'utilisation de la valeur par défaut ('DefaultEncoding') est recommandé,

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-ProgressID <Int32>

L'usage de ce paramètre crée un gestionnaire d'événements pour les opérations de lecture. Lors de l'ouverture d'une archive zip de grande taille, vous pouvez choisir d'afficher une barre de progression standardisée.

Cet ID permet de distinguer la barre de progression interne des autres. Utilisez ce paramètre lorsque vous créez plus d'une barre de progression.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-List <SwitchParameter>

Obtient les entrées contenues dans le catalogue de l'archive. Les objets renvoyés sont des objets personnalisés dont le nom de type est PSZipEntry.

Hormis sa propriété 'Info', toutes sont en lecture seule. L'archive n'est pas verrouillée.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-SortEntries <SwitchParameter>

Tri les entrées avant de les enregistrer dans l'archive.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-UnixTimeFormat <SwitchParameter>

Le format de date des fichiers sera celui d'Unix.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-WindowsTimeFormat <SwitchParameter>

Le format de date des fichiers sera celui de Windows.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-ReadOptions <ReadOptions>

Objet d'option de lecture créé à l'aide de la fonction New-ReadOptions.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable.

For more information, see
bout_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).

INPUTS

OUTPUTS

Ionic.Zip.ZipFile

NOTES

Cette fonction renvoyant seulement un objet archive Zip à partir de son nom complet, la plupart des paramètres servent à configurer les propriétés de l'archive si vous souhaitez la modifier.

Par exemple, le paramètre 'Encryption' n’influe pas sur la lecture du Zip. Seul le paramètre 'Password' est nécessaire, car ce sont les entrées de l'archive Zip qui portent l’information de cryptage, et pas l'objet de type [ZipFile].

Une archive Zip peut donc en théorie contenir plusieurs entrées dont chacune a un mode de compression différente des autres.

Attention, pour chaque objet renvoyé vous devrez appeler la méthode Close() afin de libérer correctement les ressources de l'archive.

EXAMPLES

-------------- EXAMPLE 1 --------------

PS C:\> try {
$ZipFile=Get-Zipfile -Path Test.zip
$ZipFile
} finally {
 if ($ZipFile -ne $null )
 { $ZipFile.PSDispose() }
}

Cet exemple lit un fichier zip, affiche son contenu puis libère ses ressources.

-------------- EXAMPLE 2 --------------

PS C:\> try {         
$File=Dir C:\Temp\Test.ps1 
$ZipFile=Get-Zipfile -Path Test.zip
Add-ZipEntry -Object $File -ZipFile $ZipFile
$ZipFile.Save()
} finally {
 if ($ZipFile -ne $null )
 { $ZipFile.PSDispose() }
}

Cet exemple lit un fichier zip, lui ajoute une entrée à partir d'un fichier, puis l'enregistre et enfin libère ses ressources.

-------------- EXAMPLE 3 --------------

PS C:\> try {         
$Zip=Get-Zipfile -Path Test.zip
 $ofs="`r`n"
 [string]$Text=Get-Content C:\Temp\Test.ps1
Add-ZipEntry -Object $Text -EntryName MyText -ZipFile $ZipFile
$ZipFile.Save()
} finally {
 if ($ZipFile -ne $null )
 { $ZipFile.PSDispose() }
}

Cet exemple lit un fichier zip, lui ajoute une entrée à partir d'une chaine de caractères, puis l'enregistre et enfin libère ses ressources.

-------------- EXAMPLE 4 --------------

PS C:\> try {
$Zip=Get-Zipfile -Path Test.zip
Dir *.txt|Add-ZipEntry -ZipFile $Zip
} finally {
$ZipFile.Close()
}

Cet exemple lit un fichier zip, lui ajoute tous les fichiers .txt d'un répertoire, puis l'enregistre en libérant ses ressources.

La méthode Close() appelle en interne la méthode Save() puis PSDispose().

-------------- EXAMPLE 5 --------------

PS C:\> $PSZipEntries=Get-Zipfile -Path Test.zip -List
try {
$Zip=Get-Zipfile -Path Test.zip
$Entry=$Zip.Entries|Where {$_.FileName -eq 'Test.ps1'}
$Entry.Extract('C:\Temp')
} finally {
$ZipFile.Close()
}

La première instruction de cet exemple renvoi les entrées du catalogue d'une archive sous forme d'objet de type PSZipEntry.

Les suivantes recherche dans le catalogue d'origine une entrée nommée 'Test.ps1' puis la décompresse dans le répertoire C:\Temp. La différence entre les deux approches est que les objets de type PSZipEntry ne dispose pas des méthodes spécifiques aux objets de type ZipEntry.

-------------- EXAMPLE 6 --------------

PS C:\> try
{          
$ZipFile=Get-ZipFile -path C:\Temp\archive.zip -ZipErrorAction Skip -Verbose 
 Remove-ZipEntry -ZipFile $ZipFile -Query 'name = *.txt'
 Get-ChildItem C:\Temp\*.log|Add-ZipEntry -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Cet exemple ouvre une archive, y supprime tous les fichiers .TXT et y ajoute tous les fichiers .LOG du répertoire C:\Temp.

Notez que chaque modification est enregistrée dans le catalogue de l'archive, mais seul l'appel à la méthode Close() enregistrera les modifications dans l'archive.

RELATED LINKS

Last edited Mar 27, 2014 at 10:37 AM by LaurentDardenne, version 3

Comments

No comments yet.