Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用System.IO.Compression C提取zip文件中嵌套的文件#_C# - Fatal编程技术网

C# 使用System.IO.Compression C提取zip文件中嵌套的文件#

C# 使用System.IO.Compression C提取zip文件中嵌套的文件#,c#,C#,我有许多zip文件,其中包含嵌套在zip文件子目录中的.txt文件。我正在尝试提取.txt文件并将其输出到另一个目录,但是我遇到一个错误“找不到路径的一部分…”此错误发生在“entry.FullName”点 我相信我需要在解压过程的某个阶段删除文件路径,因为如果我使用zip文件,其中包含.txt文件,而没有任何子目录,我就可以运行代码。任何指点都将不胜感激 这是我的密码: class Program { static void Main(string[] args) {

我有许多zip文件,其中包含嵌套在zip文件子目录中的.txt文件。我正在尝试提取.txt文件并将其输出到另一个目录,但是我遇到一个错误“找不到路径的一部分…”此错误发生在“entry.FullName”点

我相信我需要在解压过程的某个阶段删除文件路径,因为如果我使用zip文件,其中包含.txt文件,而没有任何子目录,我就可以运行代码。任何指点都将不胜感激

这是我的密码:

class Program
{
    static void Main(string[] args)
    {

        DateTime dt = DateTime.Now;
        foreach (var zp in Directory.GetFiles(@"D:\\My Documents\\DMU\\Frontrunner2015\\ZipIn\\", "*.zip"))
        {
            string zipPath = zp;
            string extractPath = @"D:\\My Documents\\DMU\\Frontrunner2015\\ZipOut\\";

            using (ZipArchive archive = ZipFile.OpenRead(zipPath))
            {
                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                    {
                        entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));
                    }
                    foreach (var file in Directory.GetFiles(extractPath))
                    {.....

如果您将路径留在错误消息中,以便人们可以看到未找到的路径,则会有所帮助。我猜,当您将extractPath和FullName组合在一起时,最终会得到一个不存在的文件夹名——正如您所提到的,zip文件中的文件有子目录


我想你真的想在
路径中使用
Name
属性。合并
调用。

你完全正确!这非常有效,也非常合理:)非常感谢。