解压文件怎么解压(zip万能密码)

圈圈笔记 52

zip 是一个非常常见的压缩包格式,本文主要用于说明如何使用代码 将文件或文件夹压缩为 zip压缩包及其解压操作,我们采用的是 微软官方的实现,所以也不需要安装第三方的组件包。

使用的时候记得using System.IO.Compression;

//////将指定目录压缩为Zip文件//////文件夹地址 D:/1////zip地址 D:/1.zippublicstaticvoidCompressDirectoryZip(stringfolderPath,stringzipPath){ DirectoryInfo directoryInfo =new(zipPath);if(directoryInfo.Parent !=null) { directoryInfo = directoryInfo.Parent; }if(!directoryInfo.Exists) { directoryInfo.Create(); } ZipFile.CreateFromDirectory(folderPath, zipPath, CompressionLevel.Optimal,false); }

其中CompressionLevel是个枚举,支持下面四种类型

枚举

注解

Optimal

0

压缩操作应以最佳方式平衡压缩速度和输出大小。

Fastest

1

即使结果文件未可选择性地压缩,压缩操作也应尽快完成。

NoCompression

2

该文件不应执行压缩。

SmallestSize

3

压缩操作应尽可能小地创建输出,即使该操作需要更长的时间才能完成。

我方法这里直接固定了采用 CompressionLevel.Optimal,大家可以根据个人需求自行调整。

//////将指定文件压缩为Zip文件//////文件地址 D:/1.txt///zip地址 D:/1.zippublicstaticvoidCompressFileZip(stringfilePath,stringzipPath){ FileInfo fileInfo =newFileInfo(filePath);stringdirPath = fileInfo.DirectoryName?.Replace("\\","/") +"/";stringtempPath = dirPath + Guid.NewGuid() +"_temp/";if(!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } fileInfo.CopyTo(tempPath + fileInfo.Name); CompressDirectoryZip(tempPath, zipPath); DirectoryInfo directory =new(tempPath);if(directory.Exists) {//将文件夹属性设置为普通,如:只读文件夹设置为普通directory.Attributes = FileAttributes.Normal; directory.Delete(true); } }

压缩单个文件的逻辑其实就是先将我们要压缩的文件复制到一个临时目录,然后对临时目录执行了压缩动作,压缩完成之后又删除了临时目录。

//////解压Zip文件到指定目录//////zip地址 D:/1.zip///文件夹地址 D:/1/publicstaticvoidDecompressZip(stringzipPath,stringfolderPath){ DirectoryInfo directoryInfo =new(folderPath);if(!directoryInfo.Exists) { directoryInfo.Create(); } ZipFile.ExtractToDirectory(zipPath, folderPath); }

至此 C 使用原生 System.IO.Compression 实现 zip 的压缩与解压 就讲解完了,有任何不明白的,可以在文章下面评论或者私信我,欢迎大家积极地讨论交流

上一篇:

下一篇:

  推荐阅读

分享