2016-06-06 3 views
0

현재 디렉토리에 파일 이름이 firstName입니다. 나는이 파일 (파일의 이름이 있어야한다)로 아카이브를 만들고 싶다. 아카이브 이름은 archiveName이어야합니다. 그러나 코드를 사용할 때 아카이브 이름을 가진 아카이브를 가져 오지만 파일 이름이 변경되었습니다. 어떻게 해결할 수 있습니까?GZipStream 압축에서 파일과 아카이브의 다른 이름을 만드는 방법은 무엇입니까?

public static void Compress(string firstName, string secondName) 
    { 
     FileInfo fileToCompress = new FileInfo(firstName); 
     using (FileStream originalFileStream = fileToCompress.OpenRead()) 
     { 
      if ((File.GetAttributes(fileToCompress.FullName) & 
       FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz") 
      { 
       using (FileStream compressedFileStream = File.Create(secondName)) 
       { 
        using (GZipStream compressionStream = new GZipStream(compressedFileStream, 
         CompressionMode.Compress)) 
        { 
         originalFileStream.CopyTo(compressionStream); 

        } 
       } 
       FileInfo info = new FileInfo(secondName); 
       Console.WriteLine("Compressed {0} from {1} to {2} bytes.", 
       fileToCompress.Name, fileToCompress.Length.ToString(), info.Length.ToString()); 
      } 
     } 
    } 

답변

2

GZipStream은 ZIP 파일이 아닙니다. 스트레이트 업 스트림 압축입니다.
파일이나 이름에 대한 개념이 없습니다. 단지 바이트를 압축합니다.

당신은 ZipArchive 클래스를 찾고 있습니다.