我从数据库中获取一些文件的完整路径,然后将这些文件压缩到该路径内。所以这里的问题是路径甚至目录和文件也包含通配符。 例如:
/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);
}
}
谢谢。
最佳答案
通配符通常由 shell 解释。您可以使用 java.nio.file.FileSystem.getPathMatcher() 在 Java 中执行类似的操作。请参阅this tutorial了解更多信息和使用示例。
关于java - 路径包含通配符的 FileInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4119042/