Java - 从文件夹中获取不带扩展名的文件名

Java - Getting file name without extension from a folder

我正在使用此代码获取文件夹内文件的绝对路径

public void addFiles(String fileFolder){
        ArrayList<String> files = new ArrayList<String>();     
        fileOp.getFiles(fileFolder, files);
}

但我只想获取文件的文件名(不带扩展名)。我该怎么做?

我认为不存在这样的方法。您可以获得文件名并获取 . 的最后一个索引并截断之后的内容并获取 File.separator 的最后一个索引并删除之前的内容。

你得到了你的文件名。

或者您可以使用 apache commons IO 中的 FilenameUtils 并使用以下

FilenameUtils.removeExtension(fileName);

有一个非常好的方法可以做到这一点 - 您可以使用 FilenameUtils.removeExtension

另见:How to trim a file extension from a String

此代码将执行删除文件扩展名和打印名称的工作:

      public static void main(String[] args) {
        String path = "C:\Users\abc\some";
        File folder = new File(path);
        File[] files = folder.listFiles();
        String fileName;
        int lastPeriodPos;
        for (int i = 0; i < files.length; i++) {
            if (files[i].isFile()) {
                fileName = files[i].getName();
                lastPeriodPos = fileName.lastIndexOf('.');
                if (lastPeriodPos > 0)
                fileName = fileName.substring(0, lastPeriodPos);
                System.out.println("File name is " + fileName);
            }
        }
    }

如果您对标准库没问题,那么请使用 Apache Common,因为它有现成的方法。

String filePath = "/storage/emulated/0/Android/data/myAppPackageName/files/Pictures/JPEG_20180813_124701_-894962406.jpg"


String nameWithoutExtension = Files.getNameWithoutExtension(filePath);