Dear Teman2, please bantu saya ....saya sedang kesulitan untuk meng-compress
file menggunakan PL/SQL, store procedure Java yang saya cangkok ternyata
hanya meng-compress file yang ada di dalam folder tetapi tidak meng-compress
sub-folder dan file yang ada didalam sub-folder yang ada di bawahnya, saya
benar-benar nggak ngerti Java karena belum pernah mempelajarinya. Please...
tolong lihat coding dibawah ini bagaimana cara merubahnya supaya bisa
meng-compress data seperti diharapkan. Atas perhatian teman-teman saya
ucapkan terimakasih.

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "ZipTools" AS



import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.GZIPOutputStream;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;



public class Compress {

  public static void gzipFile(String from, String to) throws IOException {

    FileInputStream in = new FileInputStream(from);

    GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(to));

    byte[] buffer = new byte[4096];

    int bytesRead;

    while ((bytesRead = in.read(buffer)) != -1)

      out.write(buffer, 0, bytesRead);

    in.close();

    out.close();

  }



  */** Zip the contents of the directory, and save it in the zipfile */*

  public static void zipDirectory(String dir, String zipfile)

      throws IOException, IllegalArgumentException {

    // Check that the directory is a directory, and get its contents

    File d = new File(dir);

    if (!d.isDirectory())

      throw new IllegalArgumentException("Not a directory:  "

          + dir);

    String[] entries = d.list();

    byte[] buffer = new byte[4096]; // Create a buffer for copying

    int bytesRead;



    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile
));



    for (int i = 0; i < entries.length; i++) {

      File f = new File(d, entries[i]);

      if (f.isDirectory())

        continue;//Ignore directory

      FileInputStream in = new FileInputStream(f); // Stream to read file

      ZipEntry entry = new ZipEntry(f.getPath()); // Make a ZipEntry

      out.putNextEntry(entry); // Store entry

      while ((bytesRead = in.read(buffer)) != -1)

        out.write(buffer, 0, bytesRead);

      in.close();

    }

    out.close();

  }



  public static void main(String args[]) throws IOException {

    String from = ".";

    File f = new File(from);

    boolean directory = f.isDirectory(); // Is it a file or directory?



    Compress.zipDirectory(from, from + ".zip");

    Compress.gzipFile(from, from + ".gz");

  }

}


[Non-text portions of this message have been removed]

Kirim email ke