2009-08-25 10 views
1

Ich habe ein Problem beim Öffnen einer Zip-Datei. Ich verwende diesen Code die Datei zip:Problem beim Öffnen einer Zip-Datei

public static string Zip_File(string soruce , string target) 
     { 
      try 
      { 
       byte[] bufferWrite;    
       using (FileStream fsSource = new FileStream(soruce, FileMode.Open, FileAccess.Read, FileShare.Read)) 
       { 
        bufferWrite = new byte[fsSource.Length]; 
        fsSource.Read(bufferWrite, 0, bufferWrite.Length); 
        using (FileStream fsDest = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) 
        { 
         using (GZipStream gzCompressed = new GZipStream(fsDest, CompressionMode.Compress, true)) 
         { 
          gzCompressed.Write(bufferWrite, 0, bufferWrite.Length); 
          bufferWrite = null; 
          fsSource.Close(); 
          gzCompressed.Close(); 
          fsDest.Close(); 
         } 
        } 
       } 
       return "success"; 
      } 
      catch (Exception ex) 
      { 
       return ex.Message; 
      } 
     } 

Wenn ich diese Funktion aufrufen bin „Erfolg“ Nachricht empfängt, aber ich kann nicht in der Lage die Zip-Datei zu öffnen.

ZipFiles.Zip_File(@"C:\Documents and Settings\ccspl\Desktop\IntegrityDVR.mdb", @"C:\Documents and Settings\ccspl\Desktop\a.zip") 

Das ist mein Funktionsaufrufcode ist:

der komprimierte (Ordner) ist ungültig oder beschädigt ...> dies ist Fehlermeldung, die ich erhalten habe

Antwort

8

GZipStream nicht .zip Dateien nicht erstellen. Es erstellt .gz Dateien. Wenn Sie .zip Dateien erstellen müssen, sollten Sie etwas wie SharpZipLib verwenden.

+0

kein Mehrdad ... mein prob noch nicht gelöst ... es gibt den gleichen Fehler msg –

+1

RV: Natürlich ** es schafft keine ZIP-Dateien **. Sie benötigen ein Programm wie 7-Zip, um '.gz' Dateien zu öffnen. –

+0

Cheeso: Ich habe 'Flush' vorgeschlagen, um mit der Fehlersuche zu beginnen. Das war, bevor ich verstand, dass das OP überhaupt kein Gzip wollte; er will Zip. –

1

aber, warten Sie eine Minute, nicht GZipStream nicht Zip-Datei erstellen, erstellt es gzip-Dateien, wie ich weiß, sollte Zipping files using GZipStream helfen

+0

Der Artikel, den Sie an http://www.geekpedia.com/tutorial190_Zipping-files-using-GZipStream.html zitiert haben, ist falsch. Es wird wiederholt behauptet, dass GZipSream zum Zippen von Dateien oder zum Erstellen eines Zip-Archivs verwendet werden kann. Nicht wahr. – Cheeso

1

Beispielcode für DotNetZip, eine Open-Source-Zip-Bibliothek.

public static string ZipFile(String source, String target) 
{ 
    try 
    { 
     using (ZipFile zip = new ZipFile() 
     { 
      zip.AddFile(source); 
      zip.Save(target); 
     } 
     return "success"; 
    } 
    catch {} 
    return "failure"; 
} 
+0

+1 für eine gute und sehr nützliche Bibliothek Referenz und danke für die Korrektur –

Verwandte Themen