ZIPPER UN REPERTOIRE EN CONSERVANT LA HIERARCHIE DES DOSSIERS

ludovicanceaux
Messages postés
440
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
- 19 févr. 2005 à 13:40
wlad952
Messages postés
30
Date d'inscription
mardi 30 mai 2006
Statut
Membre
Dernière intervention
13 mars 2009
- 8 avril 2008 à 10:18
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29601-zipper-un-repertoire-en-conservant-la-hierarchie-des-dossiers

wlad952
Messages postés
30
Date d'inscription
mardi 30 mai 2006
Statut
Membre
Dernière intervention
13 mars 2009

8 avril 2008 à 10:18
Merci ^^

Et merci à tous pour votre aide !

A bientôt je pense ... :D
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
8 avril 2008 à 10:09
"pour ta défense" ... bon, tu t'es aperçu de la bourde, certes, mais copier-coller ne dispense pas (la preuve) de relire, comprendre, absorber...

^^

bonne continuation
wlad952
Messages postés
30
Date d'inscription
mardi 30 mai 2006
Statut
Membre
Dernière intervention
13 mars 2009

8 avril 2008 à 10:04
Problème résolu, voici la solution :

byte[] Buffer = new byte[Convert.ToInt32(FileSize)];
MyFileStream.Read(Buffer, 0, Convert.ToInt32(FileSize-1));

C'est de la prog de base : on déclare un tableau de N case qui débute de 0 à N - 1 (en index). Donc forcement, si je déclare un tableau de FileSize-1 çà va pas le faire et du coup l'archive était corrompue par la taille...

Pour ma défense, je tiens à signaler que c'est un bout de code que j'avais récup du net :D
wlad952
Messages postés
30
Date d'inscription
mardi 30 mai 2006
Statut
Membre
Dernière intervention
13 mars 2009

8 avril 2008 à 09:14
Merci pour les tuyaux ;)

J'ai réussi à m'en sortir, en mettant la propriété de l'update panel UpdateMode="Conditional"
et je le met à jour uniquement lorsque je clique à certains endroit.

Maintenant, du coup je peux modifier la response de mon update panel mais je suis confronter à un autre problème :

le fichier .zip généré est correcte lorsque je l'ouvre depuis la source physique (soit localement soit sur le serveur). Cependant, lorsque je le transmet via le Header de mon response l'archive est corrompue !!! Voici mon code :

private void TransmitFile(string path, string file)
{
Response.Clear();
FileStream MyFileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
long FileSize = MyFileStream.Length;
byte[] Buffer = new byte[Convert.ToInt32(FileSize - 1)];
MyFileStream.Read(Buffer, 0, Convert.ToInt32(FileSize - 1));
MyFileStream.Close();
Response.BufferOutput = true;
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Length", Buffer.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + file);
Response.AddHeader("Content-Transfer-Encoding","binary");
Response.ContentType = "application/octet-stream";

Response.BinaryWrite(Buffer);
Response.Flush();

}

Une idée ? Merci
jesusonline
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
8 avril 2008 à 01:40
Afficher les 23 commentaires