精华内容
下载资源
问答
  • 2021-05-17 21:08:23

    当你提在您的意见jar我们可以认为这是一个编程的问题;-)

    你应该尝试验证自己的文件的第一位。如果可用,您甚至可以将为此文件和/或文件大小提供的校验和与您从其下载的位置进行比较。

    要验证zip文件的低电平,你可以使用这个命令:

    hexdump -C -n 100 file.zip

    这将显示前100个字节的拉链结构将类似于此:

    00000000 50 4b 03 04 0a 00 00 00 00 00 88 43 65 47 11 7a |PK.........CeG.z|

    00000010 39 1e 15 00 00 00 15 00 00 00 0e 00 1c 00 66 69 |9.............fi|

    00000020 6c 65 31 69 6e 7a 69 70 2e 74 78 74 55 54 09 00 |le1inzip.txtUT..|

    00000030 03 0f 05 3b 56 2f 05 3b 56 75 78 0b 00 01 04 e8 |...;V/.;Vux.....|

    00000040 03 00 00 04 e8 03 00 00 54 68 69 73 20 69 73 20 |........This is |

    00000050 61 20 66 69 6c 65 0a 1b 5b 31 37 7e 0a 50 4b 03 |a file..[17~.PK.|

    00000060 04 0a 00 00 |....|

    该文件的前两个字节必须是PK,如果不是该文件无效。一些字节稍后会找到存储的第一个文件的名称。在这个例子中它是file1inzip.txt。

    更多相关内容
  • ZIP压缩解压支持库实现了ZIP的压缩解压,封装自ziputils,操作简单方便,
  • Zip文件内存解压 静态编译带dll文件 支持密码解压,压缩是VS2015工程打包,已封装成类,方便拿去快速调用。全部代码均有注释。
  • C++利用Zlib库实现zip文件压缩及解压 支持递归压缩.可配合自动更新功能实现zip压缩包进得软件更新
  • 本工具能够为快压生成的 KZ / ZIP 文件附着自解压模块, 从而需要安装快压即可解压.方法: 将扩展名为 KZ 或 ZIP 的文件拖入窗口, 单击 "开始". 程序会创建一个同名 EXE 到当前目录. 双击EXE文件, ...
  • 1.压缩解压zip格式的,需要dll或者库文件,支持带密码压缩解压 2.:解决当解压加密过的zip时,如果文件经过了压缩,那么解压后的文件会缺少最后的12字节; 3.如果文件没有经过压缩(也就是直接打包的方式),会造成...
  • WEB前端解压ZIP压缩包  web前端解压zip文件有什么用:  只考虑标准浏览器的话, 服务器只要传输压缩包到客户端, 节约了带宽, 而且节约了传输时间, 听起来好像很厉害的说;  如果前端的代码很多, 而且包含大副...
  • 解压各种文件格式:rar,zip,iso等,支持多种格式解压库,目前根据7zip官网更新,可支持50种格式,目前公认的最大压缩率的解压库。
  • VC zip压缩解压程序

    2020-09-10 14:00:17
    使用VC实现zip的压缩、解压功能,支持文件、文件夹、密码。 VC use zip unzip and document compression and decompression code, support file, directory.
  • Zip压缩和解压工具类

    2019-08-02 14:59:41
    该工具支持zip的压缩和解压 1 1
  • PHP在线解压缩ZIP工具 - PHPUnZip,支持ZIP格式解压,遗憾的是它不支持RAR格式在线解压,使用者可以把文件压缩为ZIP格式。在线解压的目录必须有写权限,否则解压会失败。支持有密码的ZIP压缩包。 运行环境:PHP
  • Linux解压.7z .zip文件

    2021-04-27 09:02:10
    7z文件解压与压缩,支持多压缩格式的工具
  • 递归解压并分类 支持 Zip Rar 7z Tar TarGZ
  • 支持ZIP RAR文件的解密工作,具体的使用方法可以查看下载文件说明。
  • 使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。
  • j2me zip 压缩及解压不支持gzip格式
  • C# 压缩解压ZIP

    2018-11-04 18:16:39
    纯C#代码写的压缩解压ZIP需要第三方支持,测试通过。
  • C#调用系统功能(zipfldr)解压zip文件,支持Windows XP、Windows Vista/7/8/10。其中提供了两种方法,一种只能支持编译计算机使用的操作系统,另一种支持各版本Windows操作系统(默认) 单击demo按钮:即可将"c:\123\...
  • 使用Java解压文件 支持RAR5,Zip,7z ,代码只实现了这个三种,但是要想支持更多的可以查看代码。 支持跨平台。 以前的通用java解压都是坑人的,无语了。
  • Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j 进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码。
  • zip全操作类模块(支持打开加密压缩文件) 黑色@代码
  • Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展成工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...
  • 1、文件解压zip通用机制方法、一行代码支持中文; 2、一行代码解决 java.util.zip.ZipInputStream 中文乱码; 3、删除指定路径内的所有文件通用机制方法;
  • 易语言eCompress.fne支持库中文名为易语言压缩解压支持库,本易语言支持库用来压缩/解压缩文件,目前支持.zip格式。本库可以解压缩用WINZIP或者WINRAR等压缩软件生成的.zip文件,同时用本库压缩的.zip文件也可以被...
  • linux怎么解压zip文件

    千次阅读 2021-05-15 13:22:04
    ZIP是最广泛使用的归档文件格式支持无损数据压缩。ZIP文件是包含一个或多个压缩文件或目录的数据容器在文中将向您展示如何使用unzip命令通过命令行解压缩Linux系统中的文件Unzip命令,可帮助您列出,测试和提取...

    ZIP是最广泛使用的归档文件格式,支持无损数据压缩。ZIP文件是包含一个或多个压缩文件或目录的数据容器

    在此文中将向您展示如何使用unzip命令通过命令行解压缩Linux系统中的文件

    Unzip命令,可帮助您列出,测试和提取压缩的ZIP归档

    安装unzip

    默认情况下,大多数Linux发行版中都没有安装Unzip,但您可以使用发行版的软件包管理器安装它。

    在Ubuntu和Debian上安装unzipsudo apt install unzip

    在CentOS和Fedora上安装unzpsudo yum install unzip

    如何解压缩ZIP文件

    在没有任何选项的情况下使用它是最简单的形式,该unzip命令将从指定的ZIP存档中提取所有文件到当前目录。unzip filename.zip

    为了能够提取ZIP存档到指定目录,用户需要对该目录具有写入权限

    ZIP文件不支持Linux所有权信息,并且所有提取的文件将由运行该命令的用户拥有

    例如,假设您下载了Wordpress安装 ZIP文件。要将此文件解压缩到当前目录,只需运行以下命令:unzip latest.zip

    如何不显示unzip命令的信息输出

    默认情况下,unzip命令打印它提取的所有文件的名称以及提取完成时的摘要

    使用-q 选项可禁止打印这些消息。unzip -q filename.zip

    如何将ZIP文件解压缩到其他目录

    要将ZIP文件解压缩到不同的目录中,请使用该-d 选项unzip filename.zip -d /path/to/directory

    例如,要将Wordpress存档解压缩latest.zip到/var/www/目录,您将使用以下命令sudo unzip latest.zip -d /var/www

    在上面的命令中我们使用/var/www目录的写权限。当使用sudo解压缩ZIP文件时,提取的文件和目录将由用户root拥有。

    如何解压缩受密码保护的ZIP文件

    要解压缩受密码保护的文件,使用-P 选项后跟密码。unzip -P PasswOrd filename.zip

    解压缩ZIP文件时如何排除文件

    如果要从ZIP存档中提取除一个文件以外的所有文件,使用-x 选项unzip filename.zip -x file-to-exclude

    在以下示例中,我们将从ZIP存档中提取除.git目录之外的所有文件和目录unzip filename.zip -x "*.git/*"

    使用在解压缩时覆盖现有文件

    假设您已经解压缩一个ZIP文件,并且您再次运行相同的命令unzip latest.zip

    默认情况下,Unzip会询问您是要覆盖当前文件,覆盖所有文件,跳过当前文件的提取,跳过提取所有文件,还是重命名当前文件Archive: latest.zip

    replace wordpress/xmlrpc.php? [y]es, [n]o, [A]ll, [N]one, [r]ename:

    如果要在不提示的情况下覆盖现有文件,使用-o 选项unzip -o filename.zip

    请谨慎使用此选项。文件会被覆盖,如果您对文件进行了任何更改,则更改将会丢失

    如何在不覆盖现有文件的情况下解压缩ZIP文件

    假设您已经解压缩了一个ZIP文件,并且您对某些文件进行了更改,但是您不小心删除了一些文件。您希望保留更改并从ZIP存档中还原已删除的文件。

    在这种情况下,您将使用-n强制解压缩的选项来跳过已存在的文件的提取。unzip -n filename.zip

    如何解压缩多个ZIP文件

    如果当前工作目录中有多个ZIP文件,则只需使用一个命令即可解压缩所有文件:unzip '*.zip'

    注意周围的单引号*.zip。如果您忘记引用参数,shell将展开通配符

    如何列出Zip文件的内容

    要列出ZIP文件的内容,请使用-l开关。unzip -l filename.zip

    在我们的示例中,我们通过执行以下命令列出所有WordPress安装文件:unzip -l latest.zip

    输出将如下所示Archive: latest.zip

    Length Date Time Name

    --------- ---------- ----- ----

    0 2018-08-02 22:39 wordpress/

    3065 2016-08-31 18:31 wordpress/xmlrpc.php

    364 2015-12-19 12:20 wordpress/wp-blog-header.php

    7415 2018-03-18 17:13 wordpress/readme.html

    ...

    ...

    21323 2018-03-09 01:15 wordpress/wp-admin/themes.php

    8353 2017-09-10 18:20 wordpress/wp-admin/options-reading.php

    4620 2017-10-24 00:12 wordpress/wp-trackback.php

    1889 2018-05-03 00:11 wordpress/wp-comments-post.php

    --------- -------

    27271400 1648 files

    至此您已经学习了如何解压缩ZIP文件和最常见的解压缩选项,如有疑问请在下方评论中留言

    展开全文
  • 发布一款已存在很久的 “PHP在线解压缩ZIP工具 – PHPUnZip” 本人对此程序的源码未进行修改,只是在程序的美观方面做了修改和优化,但遗憾的是它不支持RAR格式在线解压,使用者可以把文件压缩为ZIP格式。在线解压的...
  • Golang zip 压缩与解压

    千次阅读 2022-01-11 20:45:52
    Go 和许多其他编程语言一样,支持从标准库中直接进行 zip 文件的压缩和解压缩。在本文中,我们将介绍如何在 Go 中利用标准库中的包 archive/zip 完成 zip 文件的创建和提取。 1.压缩 1.1 第一步:创建 zip 存档基础...


    Go 和许多其他编程语言一样,支持从标准库中直接进行 zip 文件的压缩和解压。在本文中,我们将介绍如何在 Go 中利用标准库包 archive/zip 完成 zip 文件的创建和提取。

    1.压缩

    第一步:创建一个 zip 基础文件。

    zip 文件也是一个文件,我们要做的第一件事是创建为一个简单的文件作为 zip 文件,就像在 Go 中处理任何其他文件一样。使用 os packageos.Create() 函数创建一个文件对象。

    func Create(name string) (*File, error)
    

    第二步:初始化 zip.Writer

    使用 archive/zip 包中的 zip.NewWriter 函数初始化一个 zip.Writer,用于将数据(文件和目录)写入 zip 文件。

    func NewWriter(w io.Writer) *Writer
    

    第三步:使用 zip.Writer.Create 创建一个 io.Writer

    一旦创建完 zip writer 后,便可以使用 zip.Writer.Create 向 zip 文件中添加一个文件或目录。它返回一个待压缩的文件内容应写入的 Writer,文件内容将使用 Deflate 方法进行压缩。

    func (w *Writer) Create(name string) (io.Writer, error)
    

    第四步:使用 io.Copy 或 io.Writer.Write 写数据到到 zip 文件。

    zip.Writer.Create 函数返回一个 io.Writer ,因此任何文件内容都可以通过流式写入该 writer。使用 io.Copy 或调用 writer 的 Write 方法。

    func Copy(dst Writer, src Reader) (written int64, err error)
    

    第五步:使用 zip.Writer.Close 关闭 zip 文件。

    将所有文件和目录写入 zip 文件后,可以通过 zip.Writer.Close 方法关闭 zip writer,将所有数据写入指向基础 zip 文件的数据流。注意,它不会关闭指向基础 zip 文件的 Writer。

    func (w *Writer) Close() error
    

    下面给出示例代码:

    package main
    
    import (
        "archive/zip"
        "fmt"
        "io"
        "os"
    )
    
    func main() {
        fmt.Println("creating zip archive...")
        archive, err := os.Create("archive.zip")
        if err != nil {
            panic(err)
        }
        defer archive.Close()
        zipWriter := zip.NewWriter(archive)
    
        fmt.Println("opening first file...")
        f1, err := os.Open("test.csv")
        if err != nil {
            panic(err)
        }
        defer f1.Close()
    
        fmt.Println("writing first file to archive...")
        w1, err := zipWriter.Create("csv/test.csv")
        if err != nil {
            panic(err)
        }
        if _, err := io.Copy(w1, f1); err != nil {
            panic(err)
        }
    
        fmt.Println("opening second file")
        f2, err := os.Open("test.txt")
        if err != nil {
            panic(err)
        }
        defer f2.Close()
    
        fmt.Println("writing second file to archive...")
        w2, err := zipWriter.Create("txt/test.txt")
        if err != nil {
            panic(err)
        }
        if _, err := io.Copy(w2, f2); err != nil {
            panic(err)
        }
        fmt.Println("closing zip archive...")
        zipWriter.Close()
    }
    

    运行输出:

    creating zip archive...
    opening first file...
    writing first file to archive...
    opening second file
    writing second file to archive...
    closing zip archive...
    

    最终的 zip 存档包含预期的文件。

    unzip -l archive.zip
    
    Archive:  archive.zip
    Length  Date  Time  Name
    ---------  ---------- ----- ----
    57  00-00-1980 00:00 csv/test.csv
    12  00-00-1980 00:00 txt/test.txt
    --------- -------
    69 2 files
    

    2.解压缩

    利用标准库 archive/zip 包可以创建 zip 文件,同样地也可以完成对 zip 文件的解压缩。下面让我们看看如何在 Go 中解压 zip 文件。

    第一步:使用 zip.OpenReader 打开 zip 文件。

    要想解压 zip 文件我们可能需要做的第一件事是打开它。我们可以使用 archive/zip 包提供的函数 zip.OpenReader 来打开 zip 文件,以 io.ReadCloser 的形式返回一个 zip.Reader 的实例。

    func OpenReader(name string) (*ReadCloser, error)
    

    第二步:循环访问 zip 中的文件。

    zip.OpenReader 返回一个 zip.Reader 实例,其包含一个 zip.File 切片。

    type Reader struct {
    	File []*File
    	Comment string
    	// contains filtered or unexported fields
    }
    

    第三步:使用 zip.File.Open 方法读取 zip 中文件的内容。

    func (f *File) Open() (io.ReadCloser, error)
    

    第四步:使用 io.Copy 或 io.Writer.Write 保存解压后的文件内容。

    func Copy(dst Writer, src Reader) (written int64, err error)
    

    第五步:使用 zip.Reader.Close 关闭 zip 文件。

    读取完 zip 存档中所有文件的内容并保存到指定位置后,要用接口 ReadCloser 中的方法 Close 关闭文件句柄。

    type ReadCloser interface {
    	Reader
    	Closer
    }
    
    // Closer is the interface that wraps the basic Close method.
    // The behavior of Close after the first call is undefined.
    // Specific implementations may document their own behavior.
    type Closer interface {
    	Close() error
    }
    

    下面给出示例,我们尝试解压缩包含 2 个文件的 zip 文件。有一个 txt 文件和一个 csv 文件,它们将被解压缩到选定的输出目录中。

    package main
    
    import (
        "archive/zip"
        "fmt"
        "io"
        "os"
        "path/filepath"
        "strings"
    )
    
    func main() {
        dst := "output"
        archive, err := zip.OpenReader("archive.zip")
        if err != nil {
            panic(err)
        }
        defer archive.Close()
    
        for _, f := range archive.File {
            filePath := filepath.Join(dst, f.Name)
            fmt.Println("unzipping file ", filePath)
    
            if !strings.HasPrefix(filePath, filepath.Clean(dst)+string(os.PathSeparator)) {
                fmt.Println("invalid file path")
                return
            }
            if f.FileInfo().IsDir() {
                fmt.Println("creating directory...")
                os.MkdirAll(filePath, os.ModePerm)
                continue
            }
    
            if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil {
                panic(err)
            }
    
            dstFile, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
            if err != nil {
                panic(err)
            }
    
            fileInArchive, err := f.Open()
            if err != nil {
                panic(err)
            }
    
            if _, err := io.Copy(dstFile, fileInArchive); err != nil {
                panic(err)
            }
    
            dstFile.Close()
            fileInArchive.Close()
        }
    }
    

    运行输出:

    unzipping file  output/csv/test.csv
    unzipping file  output/txt/test.txt
    

    3.进一步封装

    上面详细讲解了压缩与解压缩的操作,并给出了相应的示例。为了更好的复用上面的代码,下面做了进一步的封装,实现两个压缩与解压缩的函数。

    3.1 压缩

    // Zip compresses the specified files or dirs to zip archive.
    // If a path is a dir don't need to specify the trailing path separator.
    // For example calling Zip("archive.zip", "dir", "csv/baz.csv") will get archive.zip and the content of which is
    // dir
    // |-- foo.txt
    // |-- bar.txt
    // baz.csv
    func Zip(zipPath string, paths ...string) error {
    	// create zip file
    	if err := os.MkdirAll(filepath.Dir(zipPath), os.ModePerm); err != nil {
    		return err
    	}
    	archive, err := os.Create(zipPath)
    	if err != nil {
    		return err
    	}
    	defer archive.Close()
    
    	// new zip writer
    	zipWriter := zip.NewWriter(archive)
    	defer zipWriter.Close()
    
    	// traverse the file or directory
    	for _, srcPath := range paths {
    		// remove the trailing path separator if path is a directory
    		srcPath = strings.TrimSuffix(srcPath, string(os.PathSeparator))
    
    		// visit all the files or directories in the tree
    		err = filepath.Walk(srcPath, func(path string, info fs.FileInfo, err error) error {
    			if err != nil {
    				return err
    			}
    
    			// create a local file header
    			header, err := zip.FileInfoHeader(info)
    			if err != nil {
    				return err
    			}
    
    			// set compression
    			header.Method = zip.Deflate
    
    			// set relative path of a file as the header name
    			header.Name, err = filepath.Rel(filepath.Dir(srcPath), path)
    			if err != nil {
    				return err
    			}
    			if info.IsDir() {
    				header.Name += string(os.PathSeparator)
    			}
    
    			// create writer for the file header and save content of the file
    			headerWriter, err := zipWriter.CreateHeader(header)
    			if err != nil {
    				return err
    			}
    			if info.IsDir() {
    				return nil
    			}
    			f, err := os.Open(path)
    			if err != nil {
    				return err
    			}
    			defer f.Close()
    			_, err = io.Copy(headerWriter, f)
    			return err
    		})
    		if err != nil {
    			return err
    		}
    	}
    	return nil
    }
    

    如将一个目录和一个文件添加到当前目录指定名称的 zip 文件。

    func main() {
    	err := Zip("archive.zip", "dir", "baz.csv")
    	fmt.Println("err is", err)
    }
    

    我们可以查看一下生成的 zip 文件的内容。

    unzip -l archive.zip
    
    Archive:  archive.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  01-15-2022 20:17   dir/
            0  01-15-2022 20:17   dir/bar.txt
            0  01-15-2022 20:17   dir/foo.txt
            0  01-15-2022 20:30   baz.csv
    ---------                     -------
            0                     4 files
    
    

    3.2 解压

    // Unzip decompresses a zip file to specified directory.
    // Note that the destination directory don't need to specify the trailing path separator.
    func Unzip(zipPath, dstDir string) error {
    	// open zip file
    	reader, err := zip.OpenReader(zipPath)
    	if err != nil {
    		return err
    	}
    	defer reader.Close()
    	for _, file := range reader.File {
    		if err := unzipFile(file, dstDir); err != nil {
    			return err
    		}
    	}
    	return nil
    }
    
    func unzipFile(file *zip.File, dstDir string) error {
    	// create the directory of file
    	filePath := path.Join(dstDir, file.Name)
    	if file.FileInfo().IsDir() {
    		if err := os.MkdirAll(filePath, os.ModePerm); err != nil {
    			return err
    		}
    		return nil
    	}
    	if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil {
    		return err
    	}
    
    	// open the file
    	rc, err := file.Open()
    	if err != nil {
    		return err
    	}
    	defer rc.Close()
    
    	// create the file
    	w, err := os.Create(filePath)
    	if err != nil {
    		return err
    	}
    	defer w.Close()
    
    	// save the decompressed file content
    	_, err = io.Copy(w, rc)
    	return err
    }
    

    比如将上面创建的 archive.zip 文件解压到当前目录。

    func main() {
    	err := Unzip("archive.zip", ".")
    	fmt.Println("err is", err)
    }
    

    3.3 go-huge-util

    以上函数已放置开源库 go-huge-util,可 import 直接使用。

    package main
    
    import (
    	"fmt"
    
    	huge "github.com/dablelv/go-huge-util"
    )
    
    func main() {
    	_ := huge.Zip("archive.zip", "dir", "baz.csv")
    	_ := huge.Unzip("archive.zip", ".")
    }
    

    欢迎大家 Star & PR。


    参考文献

    Golang Zip File Example
    Golang Unzip File Example
    Zip a file in Go
    Unzip a file in Go

    展开全文
  • Mac OS和流行的Linux操作系统也对ZIP格式提供了类似的支持。因此,如果在网络上传播和分发文件,ZIP格式往往是较为常用的选择。 想要在Mac上快速解压zip文件共有两种办法:第一,使用Mac自带的解压缩工具——归档...

    ZIP文件格式是一种数据压缩和文档储存的文件格式,通常使用后缀名“.zip”。当前,ZIP格式属于几种主流的压缩格式之一,已得到广泛的使用。Mac OS和流行的Linux操作系统也对ZIP格式提供了类似的支持。因此,如果在网络上传播和分发文件,ZIP格式往往是较为常用的选择。

    想要在Mac上快速解压zip文件共有两种办法:第一,使用Mac自带的解压缩工具——归档实用工具;第二,使用第三方平台提供的Mac解压缩软件,比如说BetterZip。

    下面,小编将结合这两款Mac解压缩工具分别为大家介绍如何快速解压zip文件。

    一、使用归档实用工具解压zip文件

    Mac自带的归档实用工具可解压以及压缩zip格式的文件。在Mac系统中我们无需打开归档实用工具,只需要双击zip格式的文件或者右键选择“打开”,就能够自动解压缩了。解压缩完毕后,文件夹会出现在原来的压缩包旁边。

    二、使用BetterZip解压zip文件

    BetterZip是一款智能化的解压缩工具,与归档实用工具不同,BetterZip的功能更加丰富。

    在使用它解压zip文件时,我们可以选中压缩文档,右键选择“服务”-“使用BetterZip解压”。等待几秒后,解压缩的操作就完成了。

    除此之外,我们还可运行BetterZip,将zip压缩文档拖入操作界面中。选中需要解压的文档内容,可以是选择全部亦可是选中某一个文件进行“解压”。与在桌面上解压缩不同,在这里我们可选择保存文档的路径,例如解压到某个文件目录下等等。

    在BetterZip的操作界面上,我们可以快速阅览压缩文档里的内容、创建新文件夹、重命名文件名、删除压缩文档中的文件等等。功能上可以说是“应有尽有”,完全可以满足Mac用户的使用需求。

    展开全文
  • 3.目前对 ZIP 格式档案文件提供完整支持,不久的将来,还将可以解压 RAR、ARJ等压缩格式。 4.支持如设置口令,设置压缩比例等功能。 5.没有任何限制,更新到最新版本,支持有密码文件解压。   如果你曾做过Web...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 124,283
精华内容 49,713
关键字:

zip不支持此格式解压