2016-04-14 9 views
-1

こんにちは、このコードは私のために働いていますが、ファイルを同じディレクトリに解凍しています。私は新しいディレクトリにファイルを解凍したいと思います。 decompressedFileStreamあるnewFileNameGZipStream別のディレクトリにファイルを解凍する

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

あなたがコピーしている以下のコードを参照してください:あなたのデバッガでnewFileName

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

ルックは、それは元のディレクトリ内のファイル名拡張子を削除した元のファイル名です。別のディレクトリにコピーする場合は、ディレクトリを指定する必要があります。そのディレクトリをcurrentFileNameからコピーしないでください。あなたはディレクトリを指定する方法を知りたいですか?これは、コマンドラインアプリケーション、WinForm、WPF、ASP.NET、またはWindowsストアアプリケーションがあるかどうかによって異なります。

関連する問題