2012-04-27 4 views
0

나는이 :ZIP 압축

public static void compress(string fileName) 
    { 
     using (FileStream inFile = File.OpenRead(Directory.GetCurrentDirectory() + "\\" + subFolder + "\\" + fileName)) 
     { 
      string newFileName = fileName.Remove(fileName.Length - 3) + "zip"; 
      using (FileStream outFile = File.Create(Directory.GetCurrentDirectory() + "\\" + subFolder + "\\" + newFileName)) 
      { 
       using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress)) 
       { 
        inFile.CopyTo(Compress); 
       } 
      } 
     } 
    } 

파일 이름은 예를 들어 data.txt로입니다. 압축은 제대로 작동하지만 압축 된 파일을 보면 "데이터"라는 이름의 파일이 있습니다. "txt"확장자는 어디에 있습니까? 파일 이름의 이름은 "data.txt"여야합니다.

무엇이 잘못되었거나 잘못 되었습니까?

감사 kazik

+2

이것은 압축 파일이 아닙니다. –

+0

및 지퍼 만드는 방법? – user1359657

+0

zip을 원하면 DotNetZip을 사용하십시오. http://dotnetzip.codeplex.com/ –

답변

0

당신이 GZipStream를 사용하여 데이터, 당신은 바이트의 스트림을 제공하고 압축 할 때, 파일 - 스트림 네트워크에서 온 여부 GZipStream 인스턴스가 모르는, 메모리에서, 또는 파일에서, 따라서 파일 이름을 아카이브에 포함 할 수 없습니다.

그러나 모든 파일의 내용은 아카이브 내에 올바르게 보존됩니다. 7zip을 사용하여 새 파일 (기본적으로 data과 같은 토큰 이름 지정)을 사용하여 압축을 풀고 파일의 이름을 바꾸면 시작한 파일과 동일한 파일이됩니다.

관련 문제