ฉันพยายามที่จะคลายซิปไฟล์โดยทางโปรแกรม
ฉันได้ลองใช้System.IO.Compression.GZipStream
คลาสใน. NET แต่เมื่อแอพของฉันทำงาน (จริง ๆ แล้วเป็นการทดสอบหน่วย) ฉันได้รับข้อยกเว้นนี้:
System.IO.InvalidDataException: หมายเลขเวทย์มนตร์ในส่วนหัว GZip ไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าคุณกำลังผ่านกระแส GZip ..
ตอนนี้ผมตระหนักดีว่า.zip
ไฟล์ไม่เช่นเดียวกับ.gz
ไฟล์และที่ไม่ได้เป็นเช่นเดียวกับGZip
Zip
อย่างไรก็ตามเนื่องจากฉันสามารถแตกไฟล์ด้วยตนเองโดยดับเบิลคลิกที่ไฟล์ซิปแล้วคลิกปุ่ม "แตกไฟล์ทั้งหมด" - ปุ่มฉันคิดว่าควรมีวิธีการทำเช่นนั้นในรหัสเช่นกัน
ดังนั้นฉันจึงพยายามใช้Process.Start()
กับพา ธ ไปยังไฟล์ซิปเป็นอินพุต นี่ทำให้แอปของฉันเปิดหน้าต่างที่แสดงเนื้อหาในไฟล์ซิป ไม่เป็นไร แต่แอปจะถูกติดตั้งบนเซิร์ฟเวอร์โดยไม่มีปุ่มคลิก "แตกไฟล์ทั้งหมด" -
ดังนั้นฉันจะทำให้แอพของฉันแตกไฟล์ในไฟล์ซิปได้อย่างไร
หรือมีวิธีอื่นที่จะทำหรือไม่ ฉันชอบที่จะทำมันด้วยโค้ดโดยไม่ต้องดาวน์โหลดไลบรารีหรือแอพของบุคคลที่สามใด ๆ แผนกรักษาความปลอดภัยไม่แฟนซีเกินไปเกี่ยวกับเรื่องนั้น ...