使用 C# 解压缩 zip 文件时路径中的非法字符

Illegal Characters in Path when extracting zip file with C#

我正在尝试编写一种方法,将一个 zip 文件提取到一个目录,在提取的内容中找到一个文件,将该文件中的文本读取为一个字符串,然后 returns 该字符串。这是我的尝试

private string _getDataFile(string zipFile)
{

    string pathToFolder = @"C:\Path\To\The\File";

    foreach (char c in Path.GetInvalidPathChars())
    {
        pathToFolder = Regex.Replace(pathToFolder, c.ToString(), "");
    }
    string pathToFile = pathToFolder + @"\model.dat";
    ZipFile.ExtractToDirectory(zipFile, pathToFolder);
    string dataToReturn = File.ReadAllText(pathToFile);
    return dataToReturn;
}

然而,尽管我的 foreach 循环替换了非法路径字符,但无论我尝试使用哪个目录,程序仍然在 ZipFile.ExtractToDirectory 行抛出路径中非法字符异常,我不知道为什么。任何帮助将不胜感激。

根据 similar post,目标 zip 文件中的文件名可能有问题;这不是您指定的 zip 文件名或目录的问题。尝试手动提取文件内容,看看是否有异常文件名。

您可以遍历所有条目并在提取文件名之前清理文件名,方法是使用我在此处编写的此代码段:ZipFile.ExtractToDirectory "Illegal characters in path"