当前位置: 首页 > 工具软件 > TrueZIP > 使用案例 >

Truezip 使用实例

刘狐若
2023-12-01

 Truezip东西做的好,可惜帮助写的不咋地,压缩和解压缩的示例都没提供好。

 

压缩文件的例子

  1. File src = new File("abc.txt");
  2. File dst = new File("abc.zip/abc.txt");
  3. boolean success = src.copyTo(dst);

解压文件的例子

  1.         File src = new File("xyz.zip/xyz.txt");
  2.         File dst = new File("xyz.txt");
  3.         boolean success = src.copyTo(dst);

解决中文文件名问题的例子

  1. import de.schlichtherle.io.ArchiveDetector;
  2. import de.schlichtherle.io.DefaultArchiveDetector;
  3. import de.schlichtherle.io.archive.tar.TarBZip2Driver;
  4. import de.schlichtherle.io.archive.tar.TarDriver;
  5. import de.schlichtherle.io.archive.tar.TarGZipDriver;
  6. import de.schlichtherle.io.archive.zip.CheckedZip32Driver;
  7. public class ZipTest {
  8.     /**
  9.      * @param args
  10.      */
  11.     public static void main(String[] args) {
  12.         int a = zipSingleFile("D://ziptest//中文haha.txt", "D://ziptest//中文呵呵.zip");
  13.         int b = unzipSingleFile("D://ziptest//中文呵呵.zip""D://ziptest//中文嘿嘿.txt");
  14.     }
  15.     
  16.     /**
  17.      * 压缩一个文件
  18.      * 
  19.      * @param srcFileName
  20.      * @param zipFileName
  21.      * @return
  22.      */
  23.     public static int zipSingleFile(String srcFileName, String zipFileName) {
  24.         return zipSingleFile(srcFileName, zipFileName, "GBK");
  25.     }
  26.     public static int zipSingleFile(String srcFileName, String zipFileName,
  27.             String encoding) {
  28.         ArchiveDetector detector = new DefaultArchiveDetector(
  29.                 ArchiveDetector.ALL, new Object[] { "zip",
  30.                         new CheckedZip32Driver(encoding), "tar",
  31.                         new TarDriver(encoding), "tgz|tar.gz",
  32.                         new TarGZipDriver(encoding), "tbz|tar.bz2",
  33.                         new TarBZip2Driver(encoding) });
  34.         String srcShortFilename = srcFileName.substring(srcFileName
  35.                 .lastIndexOf('//'));
  36.         boolean result = new de.schlichtherle.io.File(srcFileName, detector)
  37.                 .copyTo(new de.schlichtherle.io.File(zipFileName + "/"
  38.                         + srcShortFilename, detector));
  39.         if (result)
  40.             return 0;
  41.         else
  42.             return -1;
  43.     }
  44.     /**
  45.      * 解压一个文件
  46.      * 
  47.      * @param srcFileName
  48.      * @param destFileName
  49.      * @return
  50.      */
  51.     public static int unzipSingleFile(String srcFileName, String destFileName) {
  52.         return unzipSingleFile(srcFileName, destFileName, "GBK");
  53.     }
  54.     public static int unzipSingleFile(String srcZipFileName,
  55.             String destFileName, String encoding) {
  56.         ArchiveDetector detector = new DefaultArchiveDetector(
  57.                 ArchiveDetector.ALL, new Object[] { "zip",
  58.                         new CheckedZip32Driver(encoding), "tar",
  59.                         new TarDriver(encoding), "tgz|tar.gz",
  60.                         new TarGZipDriver(encoding), "tbz|tar.bz2",
  61.                         new TarBZip2Driver(encoding) });
  62.         de.schlichtherle.io.File zipfile = new de.schlichtherle.io.File(
  63.                 srcZipFileName, detector);
  64.         if (!zipfile.isArchive())
  65.             return -1;
  66.         String files[] = zipfile.list();
  67.         if (files == null || files.length == 0) {
  68.             return -2;
  69.         }
  70.         boolean result = new de.schlichtherle.io.File(zipfile, files[0],
  71.                 detector).copyTo(new de.schlichtherle.io.File(destFileName,
  72.                 detector));
  73.         if (result)
  74.             return 0;
  75.         else
  76.             return -3;
  77.     }
  78. }

压缩目录的时候使用copyAllTo等方法即可。

 类似资料: