Sıkıştırılmış bir dosyayı programlı olarak açmaya çalışıyorum.
System.IO.Compression.GZipStream
.NET sınıf kullanmayı denedim , ama benim app (aslında bir birim sınama) çalıştığında ben bu istisna olsun:
System.IO.InvalidDataException: GZip başlığındaki sihirli sayı doğru değil. Bir GZip akışından geçtiğinizden emin olun.
Şimdi bir fark .zip
dosyası aynı değildir .gz
dosyanın ve bu GZip
aynı değildir Zip
.
Ancak, elle sıkıştırılmış dosyayı çift tıklatıp "Tüm dosyaları ayıkla" düğmesini tıklatarak dosyayı ayıklayabildiğim için, kodda da yapmanın bir yolu olması gerektiğini düşünüyorum.
Bu nedenle Process.Start()
girdi olarak sıkıştırılmış dosyanın yolu ile kullanmaya çalıştım . Bu, uygulamamın sıkıştırılmış dosyadaki içeriği gösteren bir Pencere açmasına neden oluyor. Her şey yolunda, ancak uygulama "Tüm dosyaları ayıkla" düğmesine tıklamak için hiçbiri olmayan bir sunucuya yüklenecek.
Peki, uygulamamın sıkıştırılmış dosyalardaki dosyaları ayıklamasını nasıl sağlarım?
Yoksa bunu yapmanın başka bir yolu var mı? Herhangi bir üçüncü taraf kitaplık veya uygulama indirmeden kodda yapmayı tercih ederim; Güvenlik departmanı bu konuda çok süslü değil ...