使用 C# 提取 zip 文件时路径中的非法字符

本文关键字:非法 字符 路径 提取 zip 文件 使用 | 更新日期: 2023-09-27 18:34:11

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

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行的路径异常中抛出非法字符,我不知道为什么。任何帮助将不胜感激。

使用 C# 提取 zip 文件时路径中的非法字符

根据类似的帖子,看起来您可能在目标zip文件中的文件名有问题;您指定的zip文件名或目录不是问题。尝试手动提取文件的内容,以查看是否存在异常的文件名。

您可以使用我在此处编写的以下代码片段循环访问所有条目并在提取文件名之前清理文件名: ZipFile.ExtractToDirectory "路径中的非法字符"