Compresser avec la commande zip linux côté java
      
      
        
        
        
        
Si vous souhaitez appeler la commande zip de linux du côté java, vous pouvez utiliser ProcessBuilder.
Exemple 1:
Si vous conservez tous les répertoires
List commandList = new ArrayList();
commandList.add("-r");
ProcessBuilder pb =new ProcessBuilder(commandList);
Exemple 2:
Si le répertoire n'est pas conservé (erreur si le même nom de fichier est utilisé)
List commandList = new ArrayList();
commandList.add("-j");
ProcessBuilder pb =new ProcessBuilder(commandList);
Liste des commandes zip LINUX
-f   freshen: only changed files
-u   update: only changed or new files
-d   delete entries in zipfile
-m   move into zipfile (delete OS files)
-r   recurse into directories
-j   junk (don't record) directory names
-0   store only
-l   convert LF to CR LF (-ll CR LF to LF)
-1   compress faster
-9   compress better
-q   quiet operation
-v   verbose operation/print version info
-c   add one-line comments
-z   add zipfile comment
-@   read names from stdin
-o   make zipfile as old as latest entry
-x   exclude the following names
-i   include only the following names
-F   fix zipfile (-FF try harder)
-D   do not add directory entries
-A   adjust self-extracting exe
-J   junk zipfile prefix (unzipsfx)
-T   test zipfile integrity
-X   eXclude eXtra file attributes
-y   store symbolic links as the link instead of the referenced file
-e   encrypt
-n   don't compress these suffixes
Exemple 3 Que faire dans les cas suivants?
Format de dossier: / home / AB / CD / + Divers fichiers et sous-dossiers
Perspective d'entrée
/home/AB/CD/
Après compression (/ home / AB / CD / non inclus)
各種ファイルとサブフォルダ.zip
Essayez et la commande ci-dessous est bonne.
pb = new ProcessBuilder("sh", "-c", “zip -r test.zip ./*”)).directory(new File("/home/AB/CD/"));
Vous pouvez également écrire de la même manière.
pb = new ProcessBuilder("/bin/sh", "-c", “zip -r test.zip ./*”)).directory(new File("/home/AB/CD/"));
pb = new ProcessBuilder("/bin/bash", "-c", “zip -r test.zip ./*”)).directory(new File("/home/AB/CD/"));