2010-11-07 7 views
2

Je reçois le chemin d'accès complet pour certains fichiers de la base de données, puis zip ces fichiers dans ce chemin. Le problème ici est que le chemin contient des caractères génériques même pour le répertoire et les fichiers. Par exemple:FileInputStream avec le chemin contient le caractère générique

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

Alors, comment puis-je obtenir ces fichiers XML résident dans cette voie à un flux d'entrée de fichier pour les zip plus tard?

Si je n'ai pas de caractères génériques et que seul le chemin représente le répertoire dans lequel se trouvent les fichiers, je fais quelque chose comme suivre pour ajouter chaque fichier. Mais le problème est que mon chemin contient les noms de fichiers avec des 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); 
     } 
     } 

Merci.

Répondre

3

Les caractères génériques sont normalement interprétés par le shell. Vous pouvez faire quelque chose de similaire en Java en utilisant java.nio.file.FileSystem.getPathMatcher(). Voir this tutorial pour plus d'informations et d'exemples d'utilisation.

+1

Une petite note: le paquet java.nio.file a été ajouté en Java 7. – lhballoti

+0

y at-il un moyen de le faire avec java 6 pls – Harshana

Questions connexes