2012-11-14 62 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

非常感谢你,它真的帮助 –