2016-04-14 116 views
-1

嗨,這段代碼對我來說很好,但它將文件解壓到同一個目錄中。我想將這些文件解壓縮到一個新的目錄中。見下面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'類,因爲它可能包含解決方案,無論你有什麼問題實現。 –

回答

0

你複製代碼decompressedFileStreamnewFileName是:

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

看看在調試器newFileName;它只是原始目錄中的原始文件名,並且文件擴展名已被刪除。如果您想將其複製到不同的目錄中,則必須指定目錄,而不要複製currentFileName中的目錄。你想知道如何指定一個目錄?這將取決於您是否有命令行應用程序,WinForm,WPF,ASP.NET或Windows應用商店應用程序。

相關問題