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

C# GZipStream将文件解压缩到单独的目录,c#,.net-4.5,C#,.net 4.5,嗨,这段代码对我有用,但它正在将文件解压缩到同一个目录中。我想把文件解压缩到一个新目录。请参阅下面的代码 public void Main() { DirectoryInfo directorySelected = new DirectoryInfo(m_ProjectPath+m_Tool); foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz")) { Dec

嗨,这段代码对我有用,但它正在将文件解压缩到同一个目录中。我想把文件解压缩到一个新目录。请参阅下面的代码

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);
            }
        }
    }
}

您正在将
解压的数据流
复制到
新文件名
,即:

string newFileName = currentFileName.Remove(
          currentFileName.Length - fileToDecompress.Extension.Length);

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

不清楚您有什么问题-请澄清(到目前为止,只要求提供功能)。您可能需要查看
System.IO.Path
类,因为它可能包含解决您在实现时遇到的任何问题的解决方案。