首页 > 解决方案 > C# System.IO.InvalidDataException 压缩文件

问题描述

System.IO.InvalidDataException:“中央目录结尾中预期的条目数与中央目录中的条目数不匹配。”

当我尝试将 zip 文件解压缩到文件夹时,我正在“为了好玩”而制作的代码出现此错误。帮助 ;-;

这是我的情况:我制作了一个拖放面板,它接收一个具有唯一扩展名的文件(该文件是一个 zip,但我将扩展名更改为测试)。然后程序将获取存档中的第一行文本,并创建一个文件夹以提取具有第一行给出的名称的文件。但它在提取代码上出现错误

string[] Arquivo = (string[])e.Data.GetData(DataFormats.FileDrop, false);
        foreach (string arquivo in Arquivo)
        {
            MessageBox.Show(arquivo);
            string[] allLines = File.ReadAllLines(arquivo);
            string line = string.Empty;
            if (allLines.Length >= 1)
            {
                line = allLines[0];
            }
            string Diretorio = @"C:\CommunicAlt\" + line;
            MessageBox.Show(Diretorio);
            if (!Directory.Exists(Diretorio))
            {
                Directory.CreateDirectory(Diretorio);
            }
            Path.ChangeExtension(arquivo, ".zip");

            ZipFile.ExtractToDirectory(arquivo, Diretorio);     //<--Here

标签: c#compiler-errors

解决方案


我解决了它,问题是:zip存档有一个带有文本的新行来创建一个目录,但是如果存档中的行数与默认值不同,则Visual Studio无法提取它......所以它不会提取。解决方案是保持 zip 存档不变,并使用配置信息创建一个新文件。


推荐阅读