2012-11-14 138 views
0

幫助解決這個問題,下面的代碼找到文件夾中的txt文件,以及如何讓它列出沒有擴展名的文件名。下面的代碼:從沒有擴展名的文件夾中輸出文件

String list[] = new File("C:\\Users\\Eric\\Desktop\\txt\\").list(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.endsWith(".txt"); 
    } 
}); 
for (int i = 0; i < list.length; i++){ 
    if(myName.equals(list[i])) { 
     InputStreamReader reader = null; 
     try{ 
      File file = new File("C:\\Users\\Eric\\Desktop\\txt\\" + list[i]); 
      reader = new InputStreamReader(new FileInputStream(file), "UTF-8"); 

正如你所看到的,就在這裏:

if(myName.equals(list[i])) 

以下是文件列表進行比較MYNAME的價值,所以你可以幫助給的比較表, myName和list [i],不考慮文件擴展名) 如程序顯示該文件夾具有以下佈局:indeks.html hi.html,用戶輸入indeks.html,比較好,但是如何創建一個用戶輸入了代碼,程序仍然將它與目錄中的文件列表進行比較?

+2

我不明白這一點。你的問題是什麼? –

+0

「沒有擴展名的文件」在哪裏?有什麼?您的代碼列出所有擴展名爲「.txt」的文件,然後查找名稱與之前確定的名稱完全匹配的名稱('myName'),並在發現後執行操作。 –

+0

現在我需要擴大比較無視,請幫助 –

回答

3

如果我理解正確,您希望列出文件夾中的所有文件,而不管它們的擴展名。在這種情況下,使用方法:

String list[] = new File("C:\\Users\\Eric\\Desktop\\txt\\").list(new FileFilter() { 
    public boolean accept(File file) { 
     return file.isFile(); 
    } 
}); 

編輯:好了,我沒理解錯的話。你想從if語句中的文件名剝離擴展名。您可以使用substringlastIndexOf聯合:

String name = list[i]; 
String nameWithoutExtension = name.substring(0, name.lastIndexOf(".")); 

,或者因爲你的所有擴展名爲「.TXT」,下面的工作太:

String nameWithoutExtension = name.substring(0, name.lastIndexOf(".txt")); 
+0

我需要得到沒有擴展名的文件 –

+0

@EricScot我編輯了我的答案,我希望現在有幫助... –

+0

非常感謝你,它真的幫助 –