2010-11-07 5 views
2

Я получаю полный путь для некоторых файлов из базы данных, а затем zip эти файлы внутри этого пути. Таким образом, проблема заключается в том, что путь содержит подстановочные знаки даже для каталога и файлов. Например:FileInputStream с контуром содержит подстановочный знак

/myfolder/product/test/*.xml 
or 
/myfolder/*/*.xml 

Так как я могу получить эти XML-файлы находятся в этом пути к входному потоку файла, чтобы пронестись их позже?

Если у меня нет подстановочных знаков, и только путь представляет каталог, в котором хранятся файлы, я делаю что-то вроде следующего, чтобы добавить каждый файл. Но проблема в моем пути содержит имена файлов с wildcarts.

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

Thank you.

ответ

3

Подстановочные знаки обычно интерпретируются оболочкой. Вы можете сделать что-то подобное на Java, используя java.nio.file.FileSystem.getPathMatcher(). См. this tutorial для получения дополнительной информации и примеров использования.

+1

Небольшое примечание: пакет java.nio.file был добавлен в Java 7. – lhballoti

+0

есть способ сделать это с помощью java 6 pls – Harshana