Pertanyaan Bantuan dalam membuat file Zip dari .Net dan membacanya dari Java


Saya mencoba membuat file Zip dari .Net yang bisa dibaca dari kode Java.

Saya telah menggunakan SharpZipLib untuk membuat file Zip tetapi juga jika file yang dihasilkan valid sesuai dengan fungsi CheckZip dari perpustakaan #ZipLib dan dapat berhasil dikompresi melalui WinZip atau WinRar Saya selalu mendapatkan kesalahan ketika mencoba untuk membukanya menggunakan Java .Utils.Zip kelas di Java.

Masalah tampaknya berada di header yang salah yang ditulis oleh SharpZipLib, saya juga memposting pertanyaan di forum SharpDevelop tetapi tanpa hasil (lihat http://community.sharpdevelop.net/forums/t/8272.aspx untuk info) tetapi tanpa hasil.

Apakah seseorang memiliki sampel kode untuk mengompresi file Zip dengan .Net dan mendekompresinya dengan kelas Java.Utils.Zip?

Salam Massimo


4
2017-09-16 10:22


asal


Jawaban:


Saya telah menggunakan Perpustakaan DotNetZip dan tampaknya berfungsi dengan baik. Kode tipikal:

using (ZipFile zipFile = new ZipFile())
{
  zipFile.AddDirectory(sourceFolderPath);
  zipFile.Save(archiveFolderName);
}

8
2017-09-16 10:35



Saya memiliki masalah yang sama dengan membuat ritsleting dengan SharpZipLib (versi terbaru) dan mengekstraksi dengan java.utils.zip.

Inilah yang memperbaiki masalah bagi saya. Saya harus memaksa pengecualian penggunaan zip64:

ZipOutputStream s = new ZipOutputStream(File.Create(someZipFileName))

s.UseZip64 = UseZip64.Off;

3
2018-03-18 17:46



Tidak dapat membantu dengan SharpZipLib, tetapi Anda dapat mencoba membuat file zip menggunakan ZipPackage kelas System.IO.Packaging tanpa menggunakan pustaka bagian ke-3 (membutuhkan .NET 3+).


2
2017-09-16 10:32



Anda tidak ingin menggunakan kelas ZipPackage di .NET - ini bukan model zip standar. Yah itu, tetapi menganggap struktur tertentu dalam file, dengan manifes dengan nama terkenal, dan sebagainya. ZipPackage tampaknya telah dioptimalkan untuk dokumen Office dan dokumen XPS.

Pustaka pihak ketiga, seperti http://www.codeplex.com/DotNetZip, mungkin lebih baik jika Anda melakukan file ZIP untuk tujuan umum dan menginginkan interoperabilitas yang baik.

DotNetZip membuat file yang sangat interoperable dengan hampir semuanya, termasuk java.utils.zip Java. Tapi hati-hati menggunakan fitur yang tidak didukung Java, seperti ZIP64 atau Unicode. ZIP64 hanya berguna untuk arsip yang sangat besar, yang mana Java tidak mendukung dengan baik saat ini, saya kira. Java mendukung Unicode dengan cara tertentu, jadi jika Anda menghasilkan file ZIP berbasis Unicode dengan DotNetZip, Anda hanya perlu mengikuti beberapa aturan dan itu akan berfungsi dengan baik.


2
2018-01-04 03:31



Untuk menilai apakah itu benar-benar file ZIP konformat, lihat PKZIP .ZIP Format File Spesifikasi.

Untuk apa gunanya saya tidak mengalami kesulitan menggunakan SharpZipLib untuk membuat ZIP pada perangkat Windows Mobile dan membukanya dengan WinZip atau fitur built-in Compressed Folders Windows XP, dan juga tidak ada masalah dalam memproduksi ZIP di desktop dengan SharpZipLib dan memprosesnya dengan saya utilitas ekstraksi ZIP sendiri (pada dasarnya pembungkus di sekitar zlib) pada perangkat seluler.


1
2017-09-16 12:55



Saya memiliki masalah serupa dengan unzipping file SharpZipLib-zip di Linux. Saya rasa saya memecahkannya (baik saya bekerja di Linux dan Mac sekarang, saya mengujinya), periksa posting blog saya: http://igorbrejc.net/development/c/sharpziplib-making-it-work-for-linuxmac


1
2018-01-28 09:43