Pourriez-vous me dire comment compresser les fichiers spécifiés dans le même fichier Zip. Permettez-moi de dire comment mes dossiers sont remplis:
Merci.
Vous pouvez le faire avec DotNetZip – il a été à l’origine produit en tant que bibliothèque pour être utilisé par les programmeurs, mais les exemples d’applications intégrés et livrés avec la bibliothèque sont devenus très utiles.
L’un des “exemples” s’appelle zipit.exe – un outil de console. Indiquez un fichier zip inexistant pour en créer un nouveau ou spécifiez un fichier zip existant pour le mettre à jour.
zipit.exe ZipArchive.zip c:\data\folder1
Vous pouvez spécifier un ou plusieurs noms de fichiers, répertoires ou une expression logique décrivant les fichiers à inclure. Pour les expressions:
name = *.jpg
tout fichier .jpg.
mtime > 07/01/2009
tout fichier avec une heure de dernière modification après minuit le 1er juillet 2009. Il y a aussi ctime et atime pour l’heure de création et l’heure d’access.
ctime > 07/01/2009:07:53:00
tout fichier dont l’ heure est créée après 7h53 le 1er juillet 2009.
size > 320mb
tout fichier d’une taille supérieure à 320 Mo. Vous pouvez aussi utiliser kb ou gb . Ou omettez les caractères pour une taille en octets. Et vous pouvez utiliser
attr != H
tout fichier pour lequel l’atsortingbut Masqué n’est pas défini. Les autres atsortingbuts incluent S = system, R = Readonly, A = Archive. Bien sûr, vous pouvez tester que l’atsortingbut est également activé (en utilisant = au lieu de! =).
attr != H and size > 320mb
inclure les fichiers qui répondent aux deux conditions. Vous pouvez également utiliser OU comme conjonction. Utilisez parens pour regrouper des expressions complexes.
name = *.jpg or name = *.gif
inclure les fichiers qui satisfont l’une ou l’autre condition.
(name = *.jpg) or (name = *.gif)
comme ci-dessus.
(mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout fichier modifié le 1er juillet. De minuit à minuit.
(name = *.jpg) AND (mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout fichier .jpg modifié le 1er juillet.
(name = *.jpg) and (size >= 100kb) and (mtime >= 07/01/2009) and (mtime < 07/02/2009)
tout fichier .jpg, de 100 Ko ou plus, modifié le 1er juillet.
Avec d'autres options sur l'outil zipit.exe, vous pouvez également:
Exemples:
zipit.exe Archive.zip -D c:\project1 -r+ "(name = *.xlsx) and (mtime >= 07/01/2009) and (mtime < 07/31/2009)"
zipit.exe Unpack.exe -sfx w -D project2 -r+ "(name = *.pdf) and (size > 100kb)"
DotNetZip est gratuit.
Toutes ces fonctionnalités sont également disponibles dans l'interface .NET de la bibliothèque. Et il y a aussi un outil graphique.
J’utilise le programme open source 7Zip avec une ligne de commande comme:
"C:\Program Files\7-Zip\7z.exe" a My.zip MyFileOrFolder
Si vous utilisez une partition NTFS, cela peut également résoudre votre problème pour que Windows compresse automatiquement le dossier dans lequel se trouvent vos fichiers de sauvegarde (cliquez avec le bouton droit sur votre dossier, sélectionnez Propriétés, Avancé et cliquez sur Compresser le contenu pour sécuriser les données).
J’ai abandonné WinZip au profit de 7-Zip car il est rapide, gratuit, efficace et disponible pour Windows et Linux.
Si vous êtes un fan de WinZip, consultez le module complémentaire de support de ligne de commande WinZip: http://winzip.com/prodpagecl.htm
Vous pouvez archiver autant de fichiers ou de répertoires que votre ligne de commande Windows le permettra:
wzzip archive.zip dir1 dir2 dir3 ...
Vous pouvez télécharger le zip GNU pour Windows sur http://gnuwin32.sourceforge.net/packages/zip.htm . Si vous voulez obtenir l’itinéraire complet de la ligne de commande UNIX, zip est disponible avec http://www.cygwin.com/ .
La page de manuel donne cet exemple qui semble résoudre votre problème, il existe également de nombreuses autres options de ligne de commande:
Par exemple, si foo.zip existe et contient foo / file1 et foo / file2, et que le répertoire foo contient les fichiers foo / file1 et foo / file3, alors:
zip -r foo.zip foo
ou plus concis
zip -r foo foo
remplacera foo / file1 dans foo.zip et appenda foo / file3 à foo.zip. Après cela, foo.zip contient foo / file1, foo / file2 et foo / file3, avec foo / file2 inchangé par rapport à avant.
Regardez dans un ancien programme appelé PKZIP. Je crois que vous pouvez aussi le faire avec WinZip et 7Zip.