带路径的FileInputStream包含通配符

时间:2010-11-07 18:26:58

标签: java wildcard fileinputstream

我从数据库获取某些文件的完整路径,然后在该路径中压缩这些文件。所以这里的问题是路径包含通配符,即使对于目录和文件也是如此。 例如:

/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);
        }
       }

谢谢。

1 个答案:

答案 0 :(得分:3)

通配符通常由shell解释。您可以使用java.nio.file.FileSystem.getPathMatcher()在Java中执行类似的操作。有关详细信息和用法示例,请参阅this tutorial