`

Truezip使用实例

    博客分类:
  • Java
 
阅读更多

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

 

压缩文件的例子

File src = new File("abc.txt");
File dst = new File("abc.zip/abc.txt");
boolean success = src.copyTo(dst);
解压文件的例子

        File src = new File("xyz.zip/xyz.txt");
        File dst = new File("xyz.txt");
        boolean success = src.copyTo(dst);
解决中文文件名问题的例子

import de.schlichtherle.io.ArchiveDetector;
import de.schlichtherle.io.DefaultArchiveDetector;
import de.schlichtherle.io.archive.tar.TarBZip2Driver;
import de.schlichtherle.io.archive.tar.TarDriver;
import de.schlichtherle.io.archive.tar.TarGZipDriver;
import de.schlichtherle.io.archive.zip.CheckedZip32Driver;


public class ZipTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int a = zipSingleFile("D:\\ziptest\\中文haha.txt", "D:\\ziptest\\中文呵呵.zip");
        int b = unzipSingleFile("D:\\ziptest\\中文呵呵.zip", "D:\\ziptest\\中文嘿嘿.txt");
    }

    
    /**
     * 压缩一个文件
     * 
     * @param srcFileName
     * @param zipFileName
     * @return
     */
    public static int zipSingleFile(String srcFileName, String zipFileName) {
        return zipSingleFile(srcFileName, zipFileName, "GBK");
    }

    public static int zipSingleFile(String srcFileName, String zipFileName,
            String encoding) {
        ArchiveDetector detector = new DefaultArchiveDetector(
                ArchiveDetector.ALL, new Object[] { "zip",
                        new CheckedZip32Driver(encoding), "tar",
                        new TarDriver(encoding), "tgz|tar.gz",
                        new TarGZipDriver(encoding), "tbz|tar.bz2",
                        new TarBZip2Driver(encoding) });

        String srcShortFilename = srcFileName.substring(srcFileName
                .lastIndexOf('\\'));

        boolean result = new de.schlichtherle.io.File(srcFileName, detector)
                .copyTo(new de.schlichtherle.io.File(zipFileName + "/"
                        + srcShortFilename, detector));
        if (result)
            return 0;
        else
            return -1;
    }

    /**
     * 解压一个文件
     * 
     * @param srcFileName
     * @param destFileName
     * @return
     */
    public static int unzipSingleFile(String srcFileName, String destFileName) {
        return unzipSingleFile(srcFileName, destFileName, "GBK");
    }

    public static int unzipSingleFile(String srcZipFileName,
            String destFileName, String encoding) {

        ArchiveDetector detector = new DefaultArchiveDetector(
                ArchiveDetector.ALL, new Object[] { "zip",
                        new CheckedZip32Driver(encoding), "tar",
                        new TarDriver(encoding), "tgz|tar.gz",
                        new TarGZipDriver(encoding), "tbz|tar.bz2",
                        new TarBZip2Driver(encoding) });

        de.schlichtherle.io.File zipfile = new de.schlichtherle.io.File(
                srcZipFileName, detector);
        if (!zipfile.isArchive())
            return -1;
        String files[] = zipfile.list();
        if (files == null || files.length == 0) {
            return -2;
        }
        boolean result = new de.schlichtherle.io.File(zipfile, files[0],
                detector).copyTo(new de.schlichtherle.io.File(destFileName,
                detector));
        if (result)
            return 0;
        else
            return -3;
    }
}

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

分享到:
评论

相关推荐

    truezip-6.jar

    truezip-6.jarjava下开源打包工具

    java压缩文件truezip6.6

    TrueZip库的核心功能在于提供了一个与Java标准文件系统API兼容的接口,这意味着开发者可以使用熟悉的`java.io`或`java.nio` API来读写压缩文件中的内容,而无需关心底层是常规文件还是压缩包。这个特性极大地简化了...

    truezip.jar

    `truezip.jar`通过内部统一使用UTF-8编码,解决了这个跨平台的问题,确保在任何系统上都能正确处理中文文件名。 `truezip.jar`的使用方法相对简单。首先,我们需要将`truezip.jar`添加到项目的类路径中。然后,可以...

    truezip-file-7.6.5.zip

    1. **TrueZip库**:理解TrueZip的架构,如何通过它来实现对压缩文件的读写操作,以及如何使用它的高级功能,如文件过滤、压缩级别控制等。 2. **Java IO API**:复习Java标准IO库,了解其基础概念,如InputStream、...

    truezip-samples-7.3-rc-1-jar-with-dependencies

    More importantly, this will also initially set up the TrueZIP File* API to detect all canonical file suffixes of all supported archive file types in TrueZIP 7.3-rc-1 - see the table at the end of ...

    truezip-620210107.rar

    - **API使用**:学习并理解TrueZip提供的API,如`de.schlichtherle.truezip.file.TFile`和`de.schlichtherle.truezip.zip.ZipFileSystem`等类。 - **错误处理**:在操作压缩文件时,应捕获并处理可能出现的异常,如`...

    Java带密码解压缩RAR压缩包(内附代码)

    本文将详细介绍如何使用Java实现这个功能,特别是处理带密码保护的RAR文件,同时支持中文文件名,并能在Windows和Linux平台上运行。 首先,我们需要一个库来处理RAR格式,因为Java标准库并不直接支持RAR解压缩。在...

    Java中文件的压缩

    本篇文章将深入探讨如何在Java中实现文件的压缩,主要关注`truezip`库的使用,这是一个强大的文件系统库,它允许在Java中直接操作 ZIP、RAR 和其他类型的压缩格式。 首先,我们需要了解Java标准库中的`java.util....

    struts2结合ext3批量下载文件

    "truezip-6.jar"就是TrueZip库的依赖文件,用于在Java程序中使用TrueZip的功能。 批量下载通常涉及到以下几个关键步骤: 1. **文件准备**:首先,需要根据业务逻辑收集待下载的文件。这可能涉及到从数据库或其他...

    java-unrar-解压rar.rar

    本文将深入讲解如何使用Java-unrar库来实现RAR文件的解压缩,并探讨相关的编程概念和技术。 首先,Java-unrar库基于RarFile类,提供了对RAR文件格式的支持。这个类能够读取RAR头部信息,识别文件和目录,并提供了解...

    java程序中调用winrar压缩(带密码)

    这里假设我们使用`jarchivelib`,这是一个轻量级且易于使用的库,可以处理多种归档格式,包括RAR。 1. **添加依赖**: 在项目中引入`jarchivelib`库。如果是Maven项目,可以在`pom.xml`文件中添加以下依赖: ```...

    weld-se-core-2.0.1.Final.zip

    commons-vfs-extensions.zip,使用commons vfs体系结构和truezip backenda的zip文件中的r/w操作使用优秀的沙丁鱼库更快地实现commons-vfs2的webdav

Global site tag (gtag.js) - Google Analytics