2016-04-14 20 views
-1

Merhaba, bu kod benim için çalışıyor ancak dosyaları aynı dizine ayırıyor. Dosyaları yeni bir dizine açmak istiyorum. decompressedFileStream olduğunu newFileName içinGZipStream Dosyaları ayrı bir dizine kopyalayın

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

Sorunuz ne ile ilgili sorun değil - lütfen belirtiniz (şimdiye kadar yalnızca bir özellik talebi var). System.IO.Path 'sınıfına, uygulamakta zorlandığınız sorun için çözüm sunması muhtemeldir. –

cevap

0

Sen kopyalıyorsun aşağıdaki kodu görme: ayıklayıcısında newFileName de

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

Bakış; Özgün dizinde, dosya adı uzantısı kaldırıldığında yalnızca orijinal dosya adı. Farklı bir dizine kopyalamak isterseniz, dizini belirtmeniz gerekir, currentFileName'dan kopyalamayın. Bir dizinin nasıl belirtileceğini bilmek ister misiniz? Bir komut satırı uygulamanız, bir WinForm, WPF, ASP.NET veya Windows Mağazası uygulamanız varsa buna bağlı olacaktır.

İlgili konular