1h plus tard...
J'ai enfin -presque- réussi à utiliser ce fameux Filtername "qui n'est pas grand chose à faire".
Code :
- File ioRepTravail = new File(sNomRepTravail);
- File[] tabioSourceFile = ioRepTravail.listFiles(new Filtre(sMasqueFicDonnees));
- // rq : sMasqueFicDonnees est récupéré dans args[]
- for ( int i=0; i<tabioSourceFile.length; i++ )
- {
- traitement sur tabioSourceFile[i]...
- }
|
Code :
- class Filtre implements FilenameFilter
- {
- private String sRegex;
- public Filtre(String sMasque)
- {
- // Conversion des regex : OS -> Java
- // * -> .++
- sRegex = sMasque.replaceAll("*", ".++" );
- // ? -> .
- sRegex = sMasque.replaceAll("?", "." );
- }
- public boolean accept(File sRepAFiltrer, String sNomFic)
- {
- return sNomFic.matches(sRegex);
- }
- }
|
Ca tourne, sauf la conversion des regex en format Java.
sRegex = sMasque.replaceAll("*", ".++" ); => Dangling meta character '*' near index 0 à l'exécution
J'ai essayé aussi
sRegex = sMasque.replace("*", ".++" ); => replace(char,char) in java.lang.String cannot be applied to (java.lang.String,java.lang.String) à la compilation