X
X copied to clipboard
压缩文件.zip问题
CreateFromDirectory压缩文件夹为zip压缩文件后,无法打开压缩文件,提示缺少压缩分卷
可否写个能够重现该问题的单元测试?
var di = new System.IO.DirectoryInfo(@"D:\新建文件夹"); System.IO.PathHelper.Compress(di, @"D:\新建文件夹.zip");
这样生成的ZIP文件,用Bandizip打开时出现错误,提示缺少压缩分卷
经测试,没有发现该问题,PathHelper能够压缩和解压缩文件夹,并且7z能够打开压缩文件
经测试,没有发现该问题,PathHelper能够压缩和解压缩文件夹,并且7z能够打开压缩文件
压缩成 .7z是没问题的,Newlife.Core用的版本是8.11.2021.1225
就是压缩zip,现在不支持7z等其它格式了。目前压缩的zip是标准格式
就是压缩zip,现在不支持7z等其它格式了。目前压缩的zip是标准格式 Newlife.Core版本8.11.2021.1225,.Net Framework 4.0 控制台程序
try { var di = new DirectoryInfo(@"D:\新建文件夹"); PathHelper.Compress(di, @"D:\11.zip"); var fi = new FileInfo(@"D:\11.zip"); PathHelper.Extract(fi, @"D:\11"); } catch(System.Exception ex) { XTrace.WriteException(ex); }
catch到的错误:16:37:38.346 1 N - NewLife.Compression.ZipException: 不是有效的Zip格式! ---> NewLife.Compression.ZipException: 0x00000004处签名错误! 在 NewLife.Compression.ZipEntry.ReadEntry(ZipArchive zipfile, Stream stream, Boolean first, Boolean embedFileData) 在 NewLife.Compression.ZipArchive.Read(Stream stream, Nullable
1 embedFileData) 在 NewLife.Compression.ZipArchive.EnsureRead() --- 内部异常堆栈跟踪的结尾 --- 在 NewLife.Compression.ZipArchive.EnsureRead() 在 NewLife.Compression.ZipArchive.get_Entries() 在 System.IO.PathHelper.Extract(FileInfo fi, String destDir, Boolean overwrite)`
这个是NET40版本,你试试最新的NET60版本,早期版本可能的确有bug。 或者你的项目调整为net4.61或以上,从Nuget引用beta版newlife.core