2012-04-27 19 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をためです。圧縮はうまくいきますが、圧縮されたファイルを見ると、 "data"という名前のファイルがあります。どこに "txt"拡張子がありますか?ファイル名はまだ "data.txt"という名前にする必要があります。

私が迷っていることや間違っていることはありますか?

よろしく kazik

+2

これはzipファイルではありません。 –

+0

とzipの作成方法は? – user1359657

+0

もしあなたがジップを望むなら、DotNetZip http://dotnetzip.codeplex.com/を使ってください。 –

答えて

0

あなたがGZipStreamを使用してデータを圧縮すると、ファイル、バイトの流れでそれをない提供している - GZipStreamインスタンスがメモリから、またはファイルから、ストリームをネットワークから来たのかどうかわかりません、アーカイブにファイル名を埋め込むことはできません。

ただし、すべてのファイルの内容はアーカイブ内で正しく保存されています。新しいファイル(デフォルトではdataなどのトークン名が与えられています)に7zipを使用してファイルを解凍し、ファイルの名前を変更して、元のファイルと同じファイルを作成します。