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]