从没有扩展名的文件夹中输出文件[英] output files from the folder with no extension

问题描述

help make this,下面的代码在文件夹中查找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,比较好,但是如何创建一个让用户输入了代码,程序还是比较了与目录中的文件列表?

推荐答案

如果我理解正确,你想列出一个文件夹中的所有文件,不管它们的扩展名是什么.在这种情况下,请使用:

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"));

本文地址:https://www.itbaoku.cn/post/978638.html