Question
Compression Gzip .NET
- Girard James
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 26
- Remerciements reçus 0
J'ai tenté d'utiliser la fonction Convert-ToGzip (Page 327) de votre livre.
J'ai des erreures lorsque je tente une compression de fichier.
[code:1]function Convert-ToGzip {
param ([string] $fichier)
if(Test-Path $fichier)
{
$Stream = New-Object system.IO.FileStream $fichier,'open'
$buffer = New-Object System.Byte[] $Stream.length
$Stream.Read($buffer,0,$Stream.lenght)
$Stream.Close()
$nom_zip=$fichier + '.Gzip'
$Stream = New-Object system.IO.FileStream $nom_zip, 'create'
$fichierzip = New-Object System.IO.Compression.
GZipStream($Stream,'compress',0)
$fichierzip.Write($buffer,0,$buffer.Lenght)
$fichierzip.close()
Write-Host 'Fin de compression '
}
}
Get-Process | Out-File 'c:\Process.txt'
Convert-ToGzip -fichier 'c:\Process.txt'[/code:1]
0
Le type [System.IO.Compression.] est introuvable : vérifiez que l'assembly dans lequel il se trouve est chargé.
à :ligne:12 caractère:26
+ $fichierzip = New-Object <<<< System.IO.Compression.'''
Le fichier n'est pas exploitable.
Pouvez-vous m'aider?
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Jacques Barathon
- Hors Ligne
- Administrateur
-
- Messages : 576
- Remerciements reçus 0
Le type [System.IO.Compression.] est introuvable : vérifiez que l'assembly dans lequel il se trouve est chargé.
à :ligne:12 caractère:26
+ $fichierzip = New-Object <<<< System.IO.Compression.'''
En regardant la ligne incriminée, elle contient bien un point en trop à la fin de System.IO.Compression et tout devrait mieux marcher si tu l'enlèves.
Tiens-nous au courant!
Janel
Connexion ou Créer un compte pour participer à la conversation.
- Girard James
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 26
- Remerciements reçus 0
[code:1]$fichierzip = New-Object System.IO.Compression.GZipStream($Stream,'compress',0)
#au lieu de :
$fichierzip = New-Object System.IO.Compression.
GZipStream($Stream,'compress',0)[/code:1]
Le script à l'air de tourner sans erreur désormais.
Par contre il m'affiche :
0
Fin de compression
Et me génère un fichier qui pèse 0ko et toujours inexploitable...
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
non c'est le caractére ` (alt-gr+7). Ici c'est une erreur de typo je pense.le point signifie une continuité avec la ligne d'en dessous?
[code:1]$fichierzip = New-Object System.IO.Compression.GZipStream($Stream,'compress',0)[/code:1]
où
System.IO.Compression est le nom de l'espace de nom,
GZipStream est le nom du constructeur de la classe de même nom et
($Stream,'compress',0) sont les paramètres du constructeur.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Girard James
- Auteur du sujet
- Hors Ligne
- Membre junior
-
- Messages : 26
- Remerciements reçus 0
[code:1]function Add-Zip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename (\"PK\" + [char]5 + [char]6 + (\"$([char]0)\" * 18))
(dir $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
Start-sleep -milliseconds 500
}
}[/code:1]
Comme son nom l'indique elle permet d'ajouter des données à une archive .Zip
[code:1]
Get-Process | Out-File 'c:\temp\Process.txt'
dir C:\temp\Process.txt | Add-Zip C:\temp\Process.zip[/code:1]
Ou encore pour un dossier:
[code:1]dir C:\temp | Add-Zip C:\temp.zip[/code:1]
Cependant, j'aimerai que le contenu du fichier .zip soit le dossier temp avec son contenu, hors cette fonction génère une archive avec le contenu du dossier temp.
Mon besoin est de regrouper plusieurs dossiers dans une seule archive .Zip où sera classé chaque dossier mis en paramètre dans l'archive finale.
Connexion ou Créer un compte pour participer à la conversation.
- Olivier
- Hors Ligne
- Membre elite
-
- Messages : 182
- Remerciements reçus 0
non c'est le caractére ` (alt-gr+7). Ici c'est une erreur de typo je pense.
Ben chez moi le (alt-gr+7) me donne | (pipe)
Alors pour ceux qui ont un clavier \"Français-Suisse\" comme moi, ben c'est la majuscule de ^
Pour parler ASCII, -> [char]96
Servira sûrement à l'un de mes compatriotes
Tout de bon et à +
Olivier<br><br>Message édité par: Olivier, à: 11/02/09 00:13
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Compression Gzip .NET