2013-03-14 86 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 
      } 

     } 

    } 
相關問題