SORU
7 Mayıs 2009, PERŞEMBE


Program kullanarak dosyaları sıkıştırır .net

Programlama yoluyla sıkıştırılmış bir dosya açmak için çalışıyorum.

System.IO.Compression.GZipStream Bu sınıfı kullanarak denedim .NET, ama uygulamam çalıştığında (aslında birim testi) bu özel durum alıyorum:

Sistem.IO.İnvalidDataException: GZip başlığında sihirli sayı doğru değil. GZip bir akış.. geçen olduğunuzdan emin olun

Ben şimdi .zip dosya .gz dosyası olarak aynı değildir, ve GZip Zip aynı olmadığını fark ettim.

Ancak, bu mümkün ayıklamak için dosyayı elle çift tıklayarak sıkıştırılmış dosya, ve sonra klik "tüm dosyaları Ayıkla"düğmesi, bence olması lazım bir şekilde yapıyor bu kod.

Bu nedenle giriş olarak sıkıştırılmış dosya yolu ile Process.Start() kullanmaya çalıştım. Bu benim uygulama bir Pencere sıkıştırılmış dosya içeriğini gösteren açmasına neden olur. Hepsi iyi, ama uygulamayı tıklatın için etrafında kimse bir sunucuda yüklü olacak "tüm dosyaları Ayıkla"düğmesi.

Nasıl benim app sıkıştırılmış dosyaları ayıklamak için alabilirim?

Ya orada bunu yapmak için başka bir yol var mı? Kod yapmayı tercih ederim, kütüphaneler ya da herhangi bir üçüncü parti uygulamaları indirirken; güvenlik departmanı bu konuda çok lüks değil...

CEVAP
31 Ocak 2013, PERŞEMBE


İle.NET 4.5şimdi dosyaları kullanarak dosyaları sıkıştırabilir .NET çerçeve

using System;
using System.IO;

namespace ConsoleApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      string startPath = @"c:\example\start";
      string zipPath = @"c:\example\result.zip";
      string extractPath = @"c:\example\extract";

      System.IO.Compression.ZipFile.CreateFromDirectory(startPath, zipPath);
      System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
  }
}

Kodu direkt olarak Microsoft belgelerine alınmıştır yukarıdaki: http://msdn.microsoft.com/en-us/library/ms404280(v=vs.110).aspx

ZipFile Meclisi System.IO.Compression.FileSystem içinde yer alıyor. (Teşekkürler...yorum aşağıya bakınız) nateirvin

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • ShoSho

    ShoSho

    20 Ocak 2010
  • spyib

    spyib

    9 Ocak 2007