1

找到解决方案。

感谢大家帮助我,我发现了根本问题。.trl 文件与它无关。这是创建错误的路径。我正在做“TRLR”+路径,当它应该是“TRLR”+文件名时。这对我来说是一个愚蠢的错误,对于浪费您的时间我深表歉意,但我感谢您的帮助!


我有一个由第 3 方提供给我们的 zip 文件。在这个 zip 文件中是自定义文件。这些只是具有不同扩展名的文本文件,我认为这只是让我感到沮丧。

我试图在我的 C# 应用程序中打开这些文件,但它不断抛出不支持该格式的错误。

由于这些只是文本文件,我觉得一定有某种方法可以实现。

如果有人有任何想法,请告诉我。

代码:

using (ZipArchive archive = ZipFile.OpenRead(_trailerName))
{
     ZipArchiveEntry entry = archive.GetEntry(tableChanged + ".trl");
     Stream ms = entry.Open(); //Here is what's causing the issue.
     StreamReader reader = new StreamReader(ms);
     string allLinesRead = reader.ReadToEnd();
     string[] everyCell = allLinesRead.Split('|');
     int numRecords = Convert.ToInt32(everyCell[1]);
     int numChanged = getRecordNum(tableChanged);
     Console.Write(numRecords + "/" + numChanged + " - " + tableChanged);
     if (numChanged != numRecords)
     {
          _errorMessage += "Records updated do not match trailer. (" + numRecords + "/" + numChanged + ") Please check database. Table affected: " + tableChanged + Environment.NewLine;
     }
}

错误:

The given path's format is not supported.

我知道这是具体的,但我需要关于我可以采取哪些步骤来解决这个问题的建议。

谢谢。

4

1 回答 1

1

.NET 的本机 zip 功能经常缺乏处理和修改由 Windows zip 工具以外的应用程序创建的 zip 文件的能力。虽然“zip”文件是标准化的,但您仍然可以看到文件头和属性的大量变化。

我建议您查看 DotNetZip (Ionic),它是一个第三方库,在创建和打开 zip 文件方面具有非常强大的功能。我发现它比 .NET 为您提供的基本功能更加宽容和强大,并且打开 zip 的代码与您所拥有的非常相似。

于 2013-09-18T20:58:51.663 回答