J'ai un fichier .zip qui commence par un répertoire parent. J'ai besoin de lire que Dir du fichier puis de rechercher mon HD pour voir si ce nom de Dir existe déjà. Si cela existe, je le supprime ensuite et remplacez-le le contenu du fichier .zip.
Tout cela que je peux faire, sauf lire le .zip sans décompresser réellement le fichier. P>
Le .zip Le fichier peut être de taille 2g de 2g afin que je souhaite éviter de décompresser, puis de lire le dir, puis de la copie. p>
La raison pour laquelle je ne décroche pas directement à l'emplacement et de forcer un écrasement est que pour certains Raison lors de l'utilisation de la méthode code pour décompresser des fichiers: < / p> CochyHere code> pour décompresser, il ignore les commutateurs qui forceraient normalement l'écrasement et invite toujours l'utilisateur s'ils veulent écraser. p>
4 Réponses :
Je ne suis pas sûr que s'il est possible de lire le contenu d'un zip sans l'extraire. p>
Si vous essayez simplement d'éviter une opération de copie fastidieuse du temps sur les données, vous pouvez essayer de décompresser à un répertoire temporaire, puis à l'aide d'une fonction "Déplacer". Le déplacement est généralement moins de temps que celui de la copie, car il ne réaffiche pas réellement les données sur le disque. Il vient de mettre à jour le système de fichiers pour pointer où se trouve les données. p>
Tout ce que j'ai essayé ne fonctionne pas. Le problème est que je peux avoir 10 fichiers .zip (patchs logiciels) qui doivent être appliqués de manière séquentielle. Si le système à corriger a déjà des correctifs 1 à 5, je n'ai pas besoin de perdre le temps à faire le décompression, à vérifier, à supprimer, essayez ensuite. Comme il se trouve, cela peut être ce que je finis par faire. Soit cela ou convaincre le client que c'est OK si les utilisateurs doivent appuyer sur un bouton pour confirmer un écrasement.
Pouvez-vous ne pas déterminer la version patch du nom de fichier du fichier zip? Nommez simplement les zips quelque chose de sensible.
Je souhaite que c'était aussi simple. Chaque patch comporte un répertoire de départ différent sous la fermeture à glissière, ce qui n'est souvent pas lié au nom du correctif réel.
supposant que vous puissiez utiliser une application externe, essayez de télécharger 7zip puis que votre script l'exécute avec le commutateur échantillon à partir du fichier d'aide: -l code>. Cela devrait vous donner une sortie que vous devriez pouvoir analyser d'une manière ou d'une autre. P>
7z l archive.zip code> p>
Je pense que j'ai eu ceci à un état de travail semi-travail. Travaillant toujours dessus mais cela semble le plus prometteur
Voici une question similaire à ce sujet.
Comment répertorier le contenu d'un dossier .zip en C #? p>
J'ai utilisé cette bibliothèque moi-même. Ça fonctionne bien, http://dotezfip.codeplex.com/ , il y a même un exemple d'arborescence qui apparaît lire le zip sans extraction. p>
Vous aurez besoin des DLL sur le serveur, mais je ne dirais pas que vous devez installer em> eux. ;) p>
Vous pouvez utiliser pour chaque code> sur votre objet
objsource code>, par exemple: