public class UnzipFile {
/**
* 解压zip文件
*
* @param targetPath 文件解压后的路径
* @param zipFilePath 文件的绝对路径
*/
public void unzipFile(String targetPath, String zipFilePath) {
try {
File zipFile = new File(zipFilePath);
InputStream is = new FileInputStream(zipFile);
ZipInputStream zis = new ZipInputStream(is);
ZipEntry entry = null;
System.out.println("开始解压:" + zipFile.getName() + "...");
//开始解压
while ((entry = zis.getNextEntry()) != null) {
String zipPath = entry.getName();
System.out.println("entry.getName() = "+entry.getName());
try {
//判断压缩文件内是目录还是文件
if (entry.isDirectory())
{ //如果是目录,创建它
File zipFolder = new File(targetPath + File.separator
+ zipPath);
if (!zipFolder.exists()) {
zipFolder.mkdirs();
}
}
else
{ //如果是文件则将其读出
File file = new File(targetPath + File.separator
+ zipPath);
if (!file.exists()) {
File pathDir = file.getParentFile();
pathDir.mkdirs();
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
int bread;
while ((bread = zis.read()) != -1) {
fos.write(bread);
}
fos.close();
}
System.out.println("成功解压:" + zipPath);
} catch (Exception e) {
System.out.println("解压" + zipPath + "失败");
continue;
}
}
zis.close();
is.close();
System.out.println("解压结束");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
String path = System.getProperty("user.dir"); //取得当前项目的根目录
System.out.println(path);
String targetPath = path+"\\tmp"; //文件解压后的路径
String zipFile = "D:\\tmp\\田.zip"; //文件的绝对路径
UnzipFile unzip = new UnzipFile();
unzip.unzipFile(targetPath, zipFile);
}
}
分享到:
相关推荐
在这个例子中,`unzOpen`用于打开zip文件,`unzGoToFirstFile`和`unzGoToNextFile`遍历文件,`unzGetCurrentFileInfo`获取文件信息,`unzReadCurrentFile`读取并解压缩文件内容,最后`unzClose`关闭zip文件。...
Delphi 的 VCL (Visual Component Library) 提供了一组用于文件压缩与解压缩的组件,其中 `TVCLUnZip` 类尤其适用于解压ZIP格式的文件。该类封装了所有解压所需的底层细节,使开发者能够以简洁的方式实现解压功能。 ...
VB6.0调用 DLL版ZIP压缩文件夹目录和解压ZIP文件,网上很多源码不好用,所以就自己做了一个。原始代码是VC++的用VS2019编译了一个,DLL封装了下。调用很简单 '调用方法如下: 'CreateZipFileA "C:\123", "C:\123.zip...
unzip.php可能包含了处理ZIP文件解压的逻辑,包括读取ZIP文件、检查密码、解压缩文件到服务器指定位置等步骤。而zip.php则可能负责文件的压缩操作,它需要遍历要打包的文件和目录,创建新的ZIP文件,并将文件添加到...
对于压缩,可以调用`zip_entry_open()`,`zip_entry_write()`和`zip_entry_close()`来写入新的压缩文件。 在实现过程中,需要注意错误处理,确保程序的健壮性。同时,为了提高效率,可以考虑使用多线程技术对大文件...
- 解压ZIP文件:创建一个`ZipFile`实例,然后遍历其中的`Entry`,逐个解压缩到目标目录。 ```swift import ZipFoundation let zipFile = try ZipFile(url: URL(fileURLWithPath: "path/to/your/zipfile.zip")) ...
3. 解压缩文件:解压缩文件则需要使用ZipFile或SevenZipExtractor类。通过遍历压缩文件中的每个条目,然后读取并写入到目标位置。 ```csharp using ICSharpCode.SharpZipLib.Zip; // 解压缩ZIP文件 using ...
综上所述,这个"C# 解压zip完整demo 带进度条"涵盖了C#中处理ZIP文件的基本步骤,包括打开ZIP档案、遍历条目、解压缩文件、使用进度条以及错误处理。通过理解这些概念,开发者可以构建出高效且用户友好的解压缩应用...
在我们的场景中,我们需要使用`open()`方法来打开ZIP文件,`extractTo()`方法来解压缩文件,并且可能需要`close()`方法来释放资源。 1. **打开ZIP文件**: 使用`ZipArchive::open()`方法打开ZIP文件,它返回一个...
本文将详细介绍如何使用CZip和CUnzip类来处理文件的压缩与解压缩任务。 首先,我们需要了解CZip和CUnzip类的基本概念。CZip类提供了创建、打开、添加、删除和提取ZIP文件的功能,而CUnzip类则负责从ZIP文件中提取...
3. 解压缩文件:以下是一个简单的解压缩文件的示例: ```csharp public static void UnzipFile(string zipFilePath, string destinationDirectory) { if (!File.Exists(zipFilePath)) { throw new ...
首先,"unity 解压缩文件zip类库"指的是Unity中用于处理ZIP文件的库,这通常涉及到第三方库的集成,因为Unity本身并不内置直接解压ZIP文件的功能。一个常见的选择是使用开源库ICSharpCode.SharpZipLib,这个库在...
2. **解压缩文件**: - `ZipFile.ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName)`: 这个方法可以将ZIP文件解压缩到指定的目录。 - `ZipFile.OpenRead(string ...
值得注意的是,在解压ZIP文件时需要指定`-epzip`参数。 #### 八、总结 通过上述内容,我们可以看到使用WinRAR的命令行工具进行文件压缩和解压缩是非常灵活且高效的。不仅可以自定义压缩等级和分卷大小,还能轻松...
Java提供了强大的标准库支持来处理ZIP文件,包括压缩与解压缩功能。这里主要介绍如何使用`java.util.zip`包中的类来进行解压操作。 #### 使用的关键类 1. **`ZipInputStream`**:用于读取ZIP压缩文件。 2. **`Zip...
在.NET框架中,C#程序员可以使用各种库来处理压缩文件,其中一个是 Ionic.Zip,也被称为DotNetZip库。这个库允许我们方便地创建、读取、修改和解压ZIP文件,而无需依赖任何外部软件,如WinRAR或7-Zip。在Windows ...
- **解压缩文件**:使用`QuaZip`类的`open()`方法打开ZIP文件,然后通过`QuaZipFile`来读取并解压单个文件或整个目录。例如: ```cpp QuaZip zip("archive.zip"); if (!zip.open(QuaZip::mdUnzip)) { // 处理...
3. **解压缩文件** 解压ZIP文件则需要一个`ZipInputStream`实例,它包装在一个`FileInputStream`中,指向ZIP文件。通过调用`getNextEntry`方法,你可以逐个访问ZIP文件中的每个条目,然后创建相应的文件或目录,将...
`ZipOutputStream`用于创建ZIP文件,而`ZipInputStream`则用于读取和解压ZIP文件。为了添加密码保护,我们需要在创建`ZipOutputStream`时设置一个密码。 1. **密码保护**:在压缩过程中,可以使用`ZipEntry`对象来...
5. **解压缩文件**:使用`ZipEntry* entry = zip->getEntry(filenameInZip.c_str())`获取ZIP文件中的特定条目,然后使用`entry->extract(outputFilePath.c_str())`将文件解压缩到指定的输出路径。 6. **关闭文件**...