在工作中我们遇到文件解压时,在采用ZipFile时只知道
ZipFile.ExtractToDirectory
,但是不知道具体过程,对于输出结果往往也不知所云。现在就源码进行解读,了解解压过程,让我们对自己的代码更有自信心。
解压过程
- 读取压缩包
将指定路径文件打开为表示zip归档格式的压缩文件包 - 遍历压缩包的压缩文件
window包含文件和目录
linux只包含文件
- 创建解压文件存放目录
遍历压缩包的压缩文件,包含文件和目录(linux中所有文件都见做文件描述符,文件、目录、可执行程序等) - 将数据写入文件
压缩包的压缩文件
window
获得的文件包含目录和文件,多级目录为多个ZipArchiveEntry
,且多级目录分隔符为“/”。
linux
linux中不存在目录ZipArchiveEntry
,只包含文件的entry,此外文件目录分隔符为“/”,在linux下不会单独创建文件,会把目录和文件名作为保存后的名字。