GZipStream解压文件到一个单独的目录

问题描述:

嗨,这段代码对我来说很好,但它将文件解压到同一个目录中。我想将这些文件解压缩到一个新的目录中。见下面GZipStream解压文件到一个单独的目录

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

不清楚你有什么问题 - 请澄清(到目前为止只有要求提供某项功能)。你可能想看看'System.IO.Path'类,因为它可能包含解决方案,无论你有什么问题实现。 –

你复制代码decompressedFileStreamnewFileName是:

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

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