Java Unzip Zip - beberapa file (termasuk folder), sebagai berikut:
Kompres beberapa file dan folder dan dekompres direktori file kompleks.
Metode kompresi menggunakan parameter variabel, yang dapat mengompres 1 ke beberapa file. Itu dapat ditulis dalam array atau ditulis ke dalam daftar parameter satu per satu ...
Zipfiles (zip, "ABC", file baru ("d:/bahasa Inggris"), file baru ("D:/mengeluarkan data.xls"));Struktur Direktori File Uji:
Konten terkompresi dari tes: folder bahasa Inggris dan dua file Excel dari level yang sama
File [] file = file baru [] {file baru ("d:/english"), file baru ("d:/menerbitkan data.xls"), file baru ("d:/name.xls cina")};Ini kode terkompresi:
/ ** * File Terkompresi - Karena keluar harus berada di luar panggilan rekursif, merangkum metode untuk * memanggil zipfiles (zipoutputStream out, jalur string, file ... srcfiles) * @param zip * @param path * @param srcfiles * @throws ioException * @Author iSaAta.param srcfiles * vOOD IOOException * @Author iShor ISEAA33 * @Prows St. srcfiles) melempar ioException {zipoutputStream out = new zipoutputStream (fileoutputStream baru (zip)); Ziptest.zipfiles (keluar, jalur, srcfiles); out.close (); System.out.println ("***************************** Dipompresi **********************"); }/*** file file terkompresi* @param zipfile zipfile* @param srcfiles file sumber terkompresi* @author isea533*/public static void zipfiles (zipoutputStream, string path, file ... "") {path = replaceall ("////srcfiles) {path = replaceall ("////srcfiles) {path.replaceall ("///" "") {Path = replaceall ("////srcfiles) {path.replaceall ("////srcfiles) {path.replacealll (""/"" ") {Path = RepLacealll (" "/" "") {Path. if (! path.endswith ("/")) {path+= "/"; } byte [] buf = byte baru [1024]; coba {untuk (int i = 0; i <srcfiles.length; i ++) {if (srcfiles [i] .isDirectory ()) {file [] file = srcfiles [i] .listFiles (); String srcpath = srcfiles [i] .getName (); srcpath = srcpath.replaceall ("//*", "/"); if (! srcpath.endswith ("/")) {srcpath+= "/"; } out.putNextEntry (zipEntry baru (path+srcpath)); Zipfiles (out, path+srcpath, file); } else {fileInputStream in = new FileInputStream (srcfiles [i]); System.out.println (path + srcfiles [i] .getName ()); out.putNextEntry (zipEntry baru (path + srcfiles [i] .getName ())); int len; while ((len = in.read (buf))> 0) {out.write (buf, 0, len); } out.closeEntry (); melampirkan(); }}} catch (Exception e) {e.printstacktrace (); }}Selama kompresi, buat penilaian pada folder dan kemudian secara rekursif mengompres file.
Lalu unzip:
/ ** * Unzip ke direktori yang ditentukan * @param zippath * @param descdir * @author isea533 */ public static void unzipfiles (string zippath, string descdir) melempar ioException {unzipfiles (file baru (zippath), descdir); } /** * Unzip the file to the specified directory* @param zipFile * @param descDir * @author isea533 */ @SuppressWarnings("rawtypes") public static void unZipFiles(File zipFile,String descDir)throws IOException{ File pathFile = new File(descDir); if (! pathfile.exists ()) {pathfile.mkdirs (); } Zipfile zip = zipfile baru (zipfile); untuk (enumerasi entri = zip.getEntries (); entri.hasmoreElements ();) {zipEntry entri = (zipentry) entries.nextElement (); String zipEntryName = entry.getName (); InputStream in = zip.getInputStream (entri); String outpath = (descdir+zipentryname) .replaceall ("//*", "/") ;; // menilai apakah jalan itu ada. Jika tidak ada, buat file path file file = file baru (outpath.substring (0, outpath.lastIndexof ('/')))); if (! file.exists ()) {file.mkdirs (); } // menilai apakah jalur lengkap file adalah folder. Jika telah diunggah di atas, tidak perlu untuk mendekompres jika (file baru (outpath) .isdirectory ()) {lanjutan; } // output sistem informasi file sistem.out.println (outpath); OutputStream out = FileOutputStream baru (outpath); byte [] buf1 = byte baru [1024]; int len; while ((len = in.read (buf1))> 0) {out.write (buf1,0, len); } in.close (); out.close (); } System.out.println ("*******************************************"); }Saat mendekompresi, tentukan bahwa folder tidak ada, dan hanya membuat folder, bukan dekompresi ... karena dekompresi adalah untuk file, bukan folder, dan folder perlu dibuat sendiri.
Metode Uji:
public static void main (string [] args) melempar ioException {/*** file terkompresi*/file [] file = file baru [] {file baru ("d:/bahasa Inggris"), file baru ("d:/ekspor data.xls"), file baru ("D:/cina name.xls")}; File zip = file baru ("d: /compressed.zip"); Zipfiles (zip, "ABC", file); /*** file unzip*/file zipfile = file baru ("d: /compressed.zip"); String path = "d:/zipfile/"; unzipfile (zipfile, jalur); }Metode pengujian tidak menangani pengecualian, ini salah, tolong jangan meniru itu.
Hasil output:
ABC/English/Templete.xls
ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/Templete.xls
ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZIPFILE2/TEMPLETE.XLS
ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZIPFILE2/ZIPFILE/ABC/TEMLETE.XLS
ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZIPFILE2/ZIPFILE/ABC/ZIPFILE2/TEMLETE.XLS
ABC/Bahasa Inggris/China/CSDN/ISEA/533/ABC/ZIPFILE2/ZIPFILE/ABC/ZIPFILE2/Daftar Pengumpulan Kartu.xls
ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZipFile2/Daftar Pengumpulan Kartu.xls
ABC/Bahasa Inggris/Cina/CSDN/ISEA/Templete.xls
ABC/Bahasa Inggris/Cina/CSDN/ISEA/Daftar Koleksi Kartu.xls
ABC/Bahasa Inggris/Cina/CSDN/TempleTe.xls
ABC/Bahasa Inggris/Kartu menerima daftar.xls
ABC/mengeluarkan data.xls
ABC/China Name.xls
********************* Kompresi selesai ***************************
D:/ZipFile/ABC/China Name.xls
D:/ZipFile/ABC/masalah data.xls
D:/ZIPFILE/ABC/Bahasa Inggris/Kartu menerima daftar.xls
d: /zipfile/abc/english/chinese/csdn/templeTe.xls
D:/ZipFile/ABC/Bahasa Inggris/Cina/CSDN/ISEA/Daftar Koleksi Kartu.xls
D: /zipfile/abc/english/chinese/csdn/isea/templeete.xls
D: /zipfile/abc/english/chinese/csdn/isea/533/abc/templeete.xls
d: /zipfile/abc/english/templeTe.xls
D: /zipfile/abc/english/chinese/csdn/isea/533/abc/zipfile2/templeete.xls
D: /zipfile/abc/english/chinese/csdn/isea/533/abc/zipfile2/zipfile/abc/templeete.xls
D: /zipfile/abc/english/chinese/csdn/isea/533/abc/zipfile2/zipfile/abc/zipfile2/templeete.xls
D:/ZIPFILE/ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZIPFILE2/ZIPFILE/ABC/ZIPFILE2/DAFTAR KOLEKSI KARTU.XLS
D:/ZIPFILE/ABC/Bahasa Inggris/Cina/CSDN/ISEA/533/ABC/ZIPFILE2/Daftar yang Diterima Kartu.xls
**********************************
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.