您的位置:首页 > 其它

.NetCore源码解读 ZipFile 解压过程

2020-06-24 09:19 531 查看

.NetCore ZipFile 解压过程

  • 源码传送门

  • 在工作中我们遇到文件解压时,在采用ZipFile时只知道
    ZipFile.ExtractToDirectory
    ,但是不知道具体过程,对于输出结果往往也不知所云。现在就源码进行解读,了解解压过程,让我们对自己的代码更有自信心。

    解压过程

    1. 读取压缩包
      将指定路径文件打开为表示zip归档格式的压缩文件包
    2. 遍历压缩包的压缩文件

    window包含文件和目录
    linux只包含文件

    1. 创建解压文件存放目录
      遍历压缩包的压缩文件,包含文件和目录(linux中所有文件都见做文件描述符,文件、目录、可执行程序等)
    2. 将数据写入文件

    压缩包的压缩文件

    window

    获得的文件包含目录和文件,多级目录为多个

    ZipArchiveEntry
    ,且多级目录分隔符为“/”。

    linux

    linux中不存在目录

    ZipArchiveEntry
    ,只包含文件的entry,此外文件目录分隔符为“/”,在linux下不会单独创建文件,会把目录和文件名作为保存后的名字。

    源码传送门

    dotnet runtime 库:https://github.com/dotnet/runtime/tree/master/src/libraries/System.IO.Compression.ZipFile/src/System/IO/Compression

    附:
    .NET Core 文件路径解决方法,统一Linux Window

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: