2013-03-14 110 views
0

我想将输入文件夹中的所有子文件夹复制到outputDir,但某些子文件夹除外。我正在使用的方法是在这里。但我不知道如何过滤子文件夹。将所有子文件夹从一个复制到另一个,但java中的一些子文件夹除外?

public static void copyDirectory(String inputFolder, String outputDir) { 
      File source = new File(inputFolder); 
      File desc = new File(outputDir); 
      try { 
       FileUtils.copyDirectory(source, desc); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
+0

可能DUP http://stackoverflow.com/questions/7191635/java-copy-a-folder-excluding-some-internal-file – 2013-03-14 12:26:16

+0

看到这个:http://stackoverflow.com/questions/7191635/java-copy-a-folder-excluded-some-internal-file – 2013-03-14 12:27:05

回答

0

嗨使用下面的代码:

public static void copyDirectory(String inputFolder, String outputDir) { 
    File source = new File(inputFolder); 
    File desc = new File(outputDir); 

    ArrayList al=new ArrayList();//contains all your directory filter names 
    try { 

     for (File file : source.listFiles()) { 
      if (!al.contains(file.getName())&&file.isDirectory()) { 
       FileUtils.copyDirectory(source, desc); 
      } 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 
+0

我已经试过你的代码,但它不工作,因为你正在使用FileUtils.copyDirectory(source,desc);这会将源dir中的所有数据复制到desc dir – 2013-03-14 13:01:41

0

试试这个。

public static void copyDirectory(String inputFolder, String outputDir) { 

     File source = new File(inputFolder); 
     File desc = new File(outputDir); 
     String name = source.getName(); 
     String desti = desc.getPath() + "/" + name; 
     File destination = new File(desti); 
     destination.mkdir(); 
     File[] subFolders = source.listFiles(); 
     for (File subFolder : subFolders) { 
      if (condition satisfies){ 
       // copy to destination folder 
      } else { 
       // Ignore 
      } 

     } 

    } 
相关问题