データベースからいくつかのファイルのフルパスを取得し、それらのファイルをそのパス内に圧縮します。したがって、ここでの問題は、ディレクトリとファイルに対してもパスにワイルドカードが含まれていることです。例えば:
/myfolder/product/test/*.xml
or
/myfolder/*/*.xml
では、これらのxmlファイルをファイル入力ストリームへのパスの下に置いて後でzipする方法を教えてください。
ワイルドカードがなく、パスだけがファイルが存在するディレクトリを表す場合は、次のようにして各ファイルを追加します。しかし、問題は、私のパスにワイルドカートを含むファイル名が含まれていることです。
//List of the files in the directry
File f = new File("/folder");
String files[] = f.list();
BufferedInputStream in = null;
for(int i =0;i<files.length;i++){
in = new BufferedInputStream(new FileInputStream("/folder/"+files[i]), 1000);
out.putNextEntry(new ZipEntry("somepath/"+files[i]));
int count;
while ((count = in.read(data, 0, 1000)) != -1) {
out.write(data, 0, count);
}
}
ありがとうございました。