我从数据库获取某些文件的完整路径,然后在该路径中压缩这些文件。所以这里的问题是路径包含通配符,即使对于目录和文件也是如此。 例如:
/myfolder/product/test/*.xml
or
/myfolder/*/*.xml
那么我怎样才能让那些xml文件驻留在该文件输入流的路径下以便以后压缩它们?
如果我没有通配符,只有路径代表文件所在的目录,我会执行以下操作来添加每个文件。但问题是我的路径包含带有通配符的文件名。
//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);
}
}
谢谢。
答案 0 :(得分:3)
通配符通常由shell解释。您可以使用java.nio.file.FileSystem.getPathMatcher()
在Java中执行类似的操作。有关详细信息和用法示例,请参阅this tutorial。