Здравствуйте. Есть вообщем вот такой (ниже) код, настроенный на упаковку файлов/папок в ZIP-архив.
package ru.app;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.util.Deque;
import java.util.LinkedList;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Main {
public static void pack(File directory, String to) throws IOException {
URI base = directory.toURI();
Deque<File> queue = new LinkedList<File>();
queue.push(directory);
OutputStream out = new FileOutputStream(new File(to));
Closeable res = out;
try {
ZipOutputStream zout = new ZipOutputStream(out);
res = zout;
while (!queue.isEmpty()) {
directory = queue.pop();
for (File child : directory.listFiles()) {
String name = base.relativize(child.toURI()).getPath();
if (child.isDirectory()) {
queue.push(child);
name = name.endsWith("/") ? name : name + "/";
zout.putNextEntry(new ZipEntry(name));
} else {
zout.putNextEntry(new ZipEntry(name));
InputStream in = new FileInputStream(child);
try {
byte[] buffer = new byte[1024];
while (true) {
int readCount = in.read(buffer);
if (readCount < 0) {
break;
}
zout.write(buffer, 0, readCount);
}
} finally {
in.close();
}
zout.closeEntry();
}
}
}
} finally {
res.close();
}
}
public static void main(String[] args) throws IOException {
pack(new File("C:/Test"), "C:/test.zip");
}
}
Этот код упаковывает вообще все файлы, которые только находятся в нужной директории.
А мне нужно сделать исключение из этого, то есть не упаковывать файлы, например с расширением .dat.
Как это можно сделать?