Question Compression Gzip .NET

Plus d'informations
il y a 17 ans 1 mois #4001 par Girard James
Compression Gzip .NET a été créé par Girard James
Bonjour,

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.

Plus d'informations
il y a 17 ans 1 mois #4002 par Jacques Barathon
Réponse de Jacques Barathon sur le sujet Re:Compression Gzip .NET
Si tu regardes bien le message d'erreur, il te donne le nom de classe qui n'est pas reconnu, et en y regardant de près il se trouve qu'il y a un point qui traîne à la fin du nom:

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.

Plus d'informations
il y a 17 ans 1 mois #4003 par Girard James
Réponse de Girard James sur le sujet Re:Compression Gzip .NET
Je continuais à chercher et en effet, ça à l'air dêtre à cet endroit par contre, le poit signifie une continuité avec la ligne d'en dessous? en gros :

[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.

Plus d'informations
il y a 17 ans 1 mois #4011 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Compression Gzip .NET
girardjames écrit:

le point signifie une continuité avec la ligne d'en dessous?

non c'est le caractére ` (alt-gr+7). Ici c'est une erreur de typo je pense.

[code:1]$fichierzip = New-Object System.IO.Compression.GZipStream($Stream,'compress',0)[/code:1]

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.

Plus d'informations
il y a 17 ans 1 mois #4012 par Girard James
Réponse de Girard James sur le sujet Re:Compression Gzip .NET
En cherchant dans le forum, je suis tombé sur un ancien post où j'ai pu trouver une fonction nommé 'Add-Zip' qui a pu répondre à mon besoin.

[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.

Plus d'informations
il y a 17 ans 1 mois #4013 par Olivier
Réponse de Olivier sur le sujet Re:Compression Gzip .NET
Bonjour Laurent !

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.

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