GZipStream将文件解压缩到单独的目录

时间:2016-04-14 15:59:59

标签: c# .net-4.5

您好这段代码对我有用,但它将文件解压缩到同一目录中。我想将文件解压缩到一个新目录。见下面的代码

public void Main()
{

    DirectoryInfo directorySelected = new DirectoryInfo(m_ProjectPath+m_Tool);

    foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
    {
        Decompress(fileToDecompress);
    }
}

public void Decompress(FileInfo fileToDecompress)
{
    using (FileStream originalFileStream = fileToDecompress.OpenRead())
    {
        string currentFileName = fileToDecompress.FullName;
        string newFileName = currentFileName.Remove(
              currentFileName.Length - fileToDecompress.Extension.Length);

        using (FileStream decompressedFileStream = File.Create(newFileName))
        {
            using (GZipStream decompressionStream = 
                new GZipStream(originalFileStream, CompressionMode.Decompress))
            {
                decompressionStream.CopyTo(decompressedFileStream);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您正在将newFileName复制到string newFileName = currentFileName.Remove( currentFileName.Length - fileToDecompress.Extension.Length); ,即:

newFileName

在调试器中查看currentFileName;它只是原始目录中的原始文件名,删除了文件扩展名。如果要将其复制到其他目录,则必须指定目录,而不是从{{1}}复制该目录。您想知道如何指定目录吗?这将取决于您是否有命令行应用程序,WinForm,WPF,ASP.NET或Windows应用商店应用程序。