C#无法解压缩用CreateEntryFromFile压缩的文件

时间:2018-07-26 20:09:59

标签: c# system.io.compression

根据this的帖子,我正在使用以下代码压缩SQL备份文件:

using (ZipArchive zip = ZipFile.Open("test.bak", ZipArchiveMode.Create))
{
    zip.CreateEntryFromFile(@"c:\something.txt", "data/path/something.txt");
}

已成功创建具有正确文件大小的zip文件。但是我无法解压缩文件。我得到了错误:

  

压缩(zip)文件夹无效或损坏

我尝试使用7-zip和内置的Windows“全部提取”选项。 我也尝试过重新安装软件,但是没有运气。

我的代码版本:

var fileName = Path.GetFileName(e.FullPath);
var newFile = dir + "\\" + fileName + ".zip";
var backupFile = txtBackupFolder.Text == "" ? "" : txtBackupFolder.Text + "\\" + fileName + ".zip";

using (ZipArchive zip = ZipFile.Open(newFile, ZipArchiveMode.Create))
{
    zip.CreateEntryFromFile(@e.FullPath, newFile);
}

1 个答案:

答案 0 :(得分:0)

上面的Nkosi帖子确实有所帮助,但是我认为增加问题的是newfile变量中的转义字符。

这确实有效:

using (ZipArchive zip = ZipFile.Open(newFile, ZipArchiveMode.Create))
{
    zip.CreateEntryFromFile(@e.FullPath, "mybackup.bak");
}