.net core下解压缩zip包

发布时间 2023-07-09 08:15:42作者: 牛腩
.net core下解压缩zip包 

           //解压文件 nuget:sharpcompress net7 mvc下测试通过
            var zipPath = Path.Combine(hostingEnv.ContentRootPath, "wwwroot", "classtemp", "layuike.zip");
            var newPath = Path.Combine(gencodedir, $"{ns}.Web", "wwwroot");
            var archive = ArchiveFactory.Open(zipPath);
            foreach (var entry in archive.Entries)
            {
                if (!entry.IsDirectory)
                {
                    Console.WriteLine(entry.Key);
                    entry.WriteToDirectory(newPath, new ExtractionOptions() { ExtractFullPath = true, Overwrite = true });
                }
            }     

  

https://www.cjavapy.com/article/343/

 

 

            #region 打包成zip

            using (var archive_zip = SharpCompress.Archives.Zip.ZipArchive.Create())
            {
                archive_zip.AddAllFromDirectory(gencodedir);
                archive_zip.SaveTo(zipfile, CompressionType.Deflate);
            }
            #endregion

  


 

测试的时候会报错,  我是先解压一个ZIP包里的文件到一个目录中,在目录中新建些文件后再把整个目录打包成ZIP包,代码都写好了,测试是前台一个按钮点击用JQUERY提交到后台,后台解压后再压缩返回ZIP包的下载路径,前面显示出来,但是测试时前台会刷新页面的,按正常来说应该是不会的,用F12开发人员工具测试发现报如下错误,不知道怎么弄了,把代码里的解压那一部分代码注释掉又是没有错了

 

 

大概知道是什么问题了,你用代码创建了目录,可以用代码在该目录下创建文件,但是用代码解压ZIP包里的文件到该目录下或者用代码复制另一个目录下的文件到该目录,就会引起上面的错误。。。​