2015-04-01 160 views
1

我有代碼的一個問題:從文件[]文件目錄

public class Files { 

    public static void main(String[] args) throws IOException { 
     // filter files AAA.txt and BBB.txt from another's 
     File f = new File("d:\\dir"); // current directory 
     File f1 = new File("d:\\dir1\\"); 


     FilenameFilter textFilter = new FilenameFilter() { 
      public boolean accept(File dir, String name) { 

       if (name.startsWith("A") && name.endsWith(".TXT")) { 
        //System.out.println(name); 
        return true; 
       } 
       else if (name.startsWith("B") && name.endsWith(".TXT")) { 
        //System.out.println(name); 
        return true; 
       } 
       else { 
        //System.out.println(name); 
        return false; 
       } 
      } 
     }; 

     File[] files = f.listFiles(textFilter); 
     for (File file : files) { 
      if (file.getName().startsWith("A")) { 
       //here save file to d:\\folder1\\ 
      } 
     } 
    } 
} 

我如何保存例如與特定名稱的文件AAA.txt到文件夾1和BBB.txt到文件夾2.感謝任何例子

+0

爲了更好的機會得到幫助,代碼格式正確ly – 2015-04-01 11:23:14

+0

Luigi Cortese? – Adamo 2015-04-01 11:30:59

+0

您是否在生成新文件名時遇到問題?或者您在保存文件時遇到問題?你想將文件複製到新位置還是移動它?假設這裏的所有目錄都在同一個文件系統上安全嗎? – Kenster 2015-04-01 11:58:33

回答

2

Files類從Java 7:
使用move(Path source, Path target, CopyOption... options)

import static java.nio.file.StandardCopyOption.*; 
import java.nio.file.FileSystem; 
import java.nio.file.Path; 
import java.nio.file.Files; 
... 
for (File file : files) {  
    if (file.getName().startsWith("A")) { 
    //here save file to d:\\folder1\\ 
    // convert file to Path object use toPath() method. 
    Path targetFilePath = FileSystems.getDefault().getPath("d:\\folder1\\").resolve(file.getFileName()) 
    Files.move(file.toPath(), targetFilePath , REPLACE_EXISTING); 
    } 
} 
+0

工作得很好。謝謝。 – Adamo 2015-04-01 12:04:45

+0

您的歡迎:) – 2015-04-01 12:06:11

+0

btw。編輯你的文章並更改導入ava.nio.file.Path; import ava.nio.file.Files;導入java.nio.file.Path; import java.nio.file.Files; – Adamo 2015-04-01 12:12:03

相關問題