/ / Compresse les fichiers dans un fichier .zip avec une structure de répertoires spécifique - C # /. Net - c #, .net, vb.net, compression, zip

Compressez les fichiers dans un fichier .zip avec une structure de répertoires spécifique - C # /. Net - c #, .net, vb.net, compression, zip

Je développe une application avec C # et j'essaie de compresser quelques fichiers de différents emplacements dans un fichier zippé.

Mon problème est que je veux avoir une structure différente dans ce fichier zip que la structure des fichiers.

Exemple:

FileA -> example.zip: DirXDirY
FileB -> example.zip: DirXDirZ
FileC -> example.zip: DirW

Je peux conserver la structure du dossier mais pas changer le chemin de "destination". Existe-t-il un outil externe ou par programme dans .Net pour y parvenir?

Réponses:

2 pour la réponse № 1

as-tu essayé dotnetzip? - ceci est facile à faire en utilisant simplement un chemin différent comme nom dans le fichier zip en utilisant le AddEntry / AddFile méthodes.

Regarde aussi DotNetZip: Ajouter des fichiers à un répertoire d'archivage créé dynamiquement


0 pour la réponse № 2

Solution robuste - traiter le fichier zip par entrées et parpuis extrayez / zip en utilisant le chemin substitué (qui peut être le chemin réel du fichier, que vous pouvez placer dans le dossier temporaire avant de compresser ou de copier vers un emplacement souhaité après l'extraction). Le chemin d’origine des fichiers peut être sauvegardé sous forme de texte, puis stocké dans le zip également (comme il aura de toute façon votre structure désignée, vous pouvez donc réserver le fichier "extract.txt" pour stocker l’emplacement du fichier original pour l’extraction). .

Vous pouvez utiliser libs (ICSharpCode.SharpZipLib ou autres) ou utiliser le framework .net 4.5. ZipArchive effectuer des opérations de base avec le fichier zip lui-même.