2013-02-20 41 views
1

我必須建立在當前工作目錄下的文本文件的所有名稱的列表...名的文件

我寫了這樣的事情,但它的真正的工作我不能只是看到這個在網上

String[] allomanyok2 = fl.list();其中flFile型....

我需要的文本文件的名字,因爲我必須做不同的事情與他們...

誰能幫助我,我怎麼能得到t他在名單上的名字或者什麼? ... thx預計

回答

2

假設你想.txt擴展名的文本文件,你可以做到以下幾點:

File file = new File("myDirectory"); 
String[] myTextFiles = file.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); // Andrew Thompson's comment 
    } 
}); 

這裏list()方法將它實現了accept(File, String)方法的FilenameFilter匿名類。此方法只是檢查文件名是否以.txt結尾,如果是則返回true,否則返回false。

list()方法將僅返回以.txt結尾的文件。

如果你希望你的數組列表:

List<String> myListTextFiles = Arrays.asList(myTextFiles); 
+0

它說file.list()不能有參數... – spd92 2013-02-20 17:29:43

+0

你在使用java.io.File嗎? – 2013-02-20 17:30:21

+0

@Sotirios Delimanolis對不起,我試着編輯你的答案,而不是我的 – mbatchkarov 2013-02-20 17:32:03

1

您需要一個使用File#list(FilenameFilter)。實現一個只接受以txt結尾的字符串的過濾器。我假設所有文本文件將有一個.txt擴展名。

String[] allomanyok2 = fl.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(".txt"); 
    }; 
}); 
+0

,我應該怎麼做呢?我對Java很陌生,所以有些東西我不熟悉......但是:p – spd92 2013-02-20 17:26:50

+0

查看更新回答 – mbatchkarov 2013-02-20 17:27:50

+3

我會推薦'return name.toLowerCase()。endsWith(「txt」);'for catching 'README.TXT'。 – 2013-02-20 17:33:21

1

試試這個:

File workingDir = new File("."); 
String[] textFiles = workingDir.list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.endsWith(".txt"); 
    }; 
}); 
+0

我會推薦'return name.toLowerCase()。endsWith(「txt」);'用於捕獲'README.TXT'。 – 2013-02-20 17:34:42