/// <summary>
/// 解压缩
/// </summary>
/// <param name="fileStream"></param>
/// <returns></returns>
public static string Decompress(Stream fileStream)
var zipPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{Guid.NewGuid():N}.zip");
using (FileStream file = File.Create(zipPath))
// 复制文件
fileStream.CopyTo(file);
// 清空缓冲区数据
file.Flush();
var basepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Guid.NewGuid().ToString("N"));
if (!Directory.Exists(basepath))
Directory.CreateDirectory(basepath);
//将指定 zip 存档中的所有文件都解压缩到文件系统的一个目录下
ZipFile.ExtractToDirectory(zipPath, basepath, System.Text.Encoding.GetEncoding("gbk"), true);
File.Delete(zipPath);
return basepath;
如果解压文件路径中带有中文时会在解压文件路径中出现乱码,通过查找质料知道其主要原因是:在zip标准中,对文件名的 encoding 用的不是 unicode,而可能是各种软件根据系统的默认字符集来采用(此为猜测)而zipfile中根据文件flag 检测的时候,只支持 cp437 和 utf-8,而Windows系统使用的是gbk。处理的办法:一更改源码:像我这个版本python3.10.8的具体解决方法是在python安装目录下找到lib文件夹下的zipfile.py然后将该文件的第1374行的 file
使用.net core 3.1 框架做一个SharpZipLib解压功能服务的时候,遇到了中文文件解压后出现乱码,由于这个代码之前在wpf上使用一直没问题,所以感觉应该出在.net core 3.1引用的编码库上。
解决办法:
添加引用最新包:System.Text.Encoding.CodePages
然后在项目初始化的时候对编码库进行引用注册:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
之前报错的代码就可以正
.net文件夹内容的压缩与解压1.安装Nuget 包 System.IO.Compression2.生成压缩包与解压
1.安装Nuget 包 System.IO.Compression
安装命令:insatll-package System.IO.Compression (也可用NuGet管理器安装)!
2.生成压缩包与解压
ZipFile.CreateFromDirectory(@"G:\临时\test\2109135555", @"G:\临时\test\release.zip");//压缩
ZipFi
System.IO.Compression命名空间包含如下的基本的文件和流压缩和解压缩服务的类型, 还可以使用这些类型来读取和修改压缩文件的内容,主要有以下类:
ZipFile
ZipArchive
ZipArchiveEntry
DeflateStream
GZipStream
1.使用 ZipFile 类创建和提取有一个 .zip 文件扩展名的压缩文件:必须引
(SharpZipLib.dll)http://www.icsharpcode.net/ /// /// 压缩文件 /// using System;using System.IO;using ICSharpCode.SharpZipLib.Checksums;using ICSharpCode.SharpZipLib.Zip;using ICSharpCode.SharpZipLi
这里用的SharpZipLib库,由于windows的Zip格式的压缩包编码方式是GBK,所以这里是为了设置解码方式是GBK。 这里实例化了一个CodePagesEncodingProvider,切记,这个类不在Dotnet框架中,在使用的过程中没有报错,但是根本获取不到GBK的解码方式,所以完全解决不了中文名乱码的方式,若是看官刚好在看到这篇文章之后不妨尝试一下,引入System.Text.Encoding.CodePages这个Nuget包,这样就能够解决这个问题了。 对于N
希望能够帮助你们,这个问题也困扰了我很久,api文档描述的很浅,开发者论坛上面也有很多人遇到了这个问题。成功案例:使用 MultipartEntityBuilder 类上传。2、头部head设置文件名称,设置字符编码utf-8。1、使用url编码将文件名称转码后上传。使用的jar包是httpClient。