System.IO.Compression.ZipFile.ExtractToDirectory(sources, @path);
使用.net6.0 zipfile重写同名文件但是达不到想要的目的,希望文件内容不缺失;使用windows强制解压目标文件夹区分大小写,还是解压不了
希望解压出来最后的文件内容完整,可存在同名但大小写不同的文件,被压缩的压缩源文件可以被改动但是最后也内容完整;
linux下是严格区分大小写的
而windows下是不区分大小写的
你在linux下打包的文件夹,里面有同名文件
想在windows下一键解压必然出错
你只能用winzip打开压缩包,然后一个一个的选需要解压出来的文件,把它们重命名或放到不同的目录下面
供参考
private void button2_Click(object sender, EventArgs e)
{
string src = @"D:\tt.zip";
string dst = @"D:\";
System.IO.Compression.ZipArchive zip= System.IO.Compression.ZipFile.OpenRead(src);
string s = "";
foreach (System.IO.Compression.ZipArchiveEntry t in zip.Entries)
{
s += t.FullName + "\r\n";
byte[] bt=new byte[t.Length];
Stream sm= t.Open();
sm.Read(bt);
using(FileStream fs=new FileStream(dst+t.FullName, FileMode.Create))
{
fs.Write(bt, 0, bt.Length);
}
sm.Close();
}
textBox2.Text = s;
}