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,比较好,但是如何创建一个,让用户输入了代码,程序还和目录中的文件列表进行比较呢?

4

1 回答 1

3

如果我理解正确,您想列出文件夹中的所有文件,而不管它们的扩展名。在这种情况下,请使用:

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

编辑:好的,我没有正确理解你。您想从 if 语句中的文件名中去除扩展名。您可以substring结合使用lastIndexOf

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

或者,由于您的所有扩展名都是“.txt”,因此以下内容也可以使用:

String nameWithoutExtension = name.substring(0, name.lastIndexOf(".txt"));
于 2012-11-14T15:13:34.483 回答