Index: lutinutil/src/java/org/codelutin/util/FileUtil.java diff -u lutinutil/src/java/org/codelutin/util/FileUtil.java:1.12 lutinutil/src/java/org/codelutin/util/FileUtil.java:1.13 --- lutinutil/src/java/org/codelutin/util/FileUtil.java:1.12 Fri Aug 25 16:59:15 2006 +++ lutinutil/src/java/org/codelutin/util/FileUtil.java Wed Aug 30 15:01:44 2006 @@ -23,9 +23,9 @@ * Created: 22 nov. 2004 * * @author Benjamin Poussin - * @version $Revision: 1.12 $ + * @version $Revision: 1.13 $ * - * Mise a jour: $Date: 2006/08/25 16:59:15 $ + * Mise a jour: $Date: 2006/08/30 15:01:44 $ * par : $Author: bpoussin $ */ @@ -556,16 +556,38 @@ * * @param srcDir * @param destDir + * @param includePatterns les patterns que doivent resperter les + * fichiers/repertoires pour etre copié. Si vide alors tout est copié + * * @throws IOException */ - static public void copyRecursively(File srcDir, File destDir) throws IOException { + static public void copyRecursively(File srcDir, File destDir, String ... includePatterns) throws IOException { String rootSrc = srcDir.getParent(); List files = getFilteredElements(srcDir, null); for (File file : files) { - String path = file.getPath().substring(rootSrc.length()); - File destFile = new File(destDir, path); - copy(file, destFile); + if (file.isFile() && copyRecursivelyAccept(file, includePatterns)) { + String path = file.getPath().substring(rootSrc.length()); + File destFile = new File(destDir, path); + copy(file, destFile); + } + } + } + + /** + * @param file + * @param includePatterns + * @return + */ + private static boolean copyRecursivelyAccept(File file, String[] includePatterns) { + boolean result = includePatterns.length == 0; + String filename = file.getAbsolutePath(); + for (String pattern : includePatterns) { + result = filename.matches(pattern); + if (result) { + break; + } } + return false; } } // FileUtil