高分悬赏:Java语言怎么提取一个文件路径里的文件的扩展名的部分,也就是最后一个点后面的部分,没有扩展名返回""

高分悬赏:Java语言怎么提取一个文件路径里的文件的扩展名的部分,也就是最后一个点后面的部分,没有扩展名返回

问题描述:

高分悬赏:Java语言怎么提取一个文件路径里的文件的扩展名的部分,也就是最后一个点后面的部分,没有扩展名返回""

比如

c:\123\aaa.abc
返回abc
c:\123.456\aaa
返回"",而不是456\aaa

实现思路:

1、 lastIndexOf(".") != -1 说明包含,直接 substring(lastIndex+1)
2、取最后一个 \ ,直接截取。

截取\,再截取截取最后一个没有就返回“”

String path="c:/123.456/aaa";//给定路径
  String[] a=path.split("/");
  ////////////////去最后一个进行查找
  int n=a[a.length-1].indexOf(".");
  if(n>-1){
      System.out.println(a[a.length-1].substring(n+1));
  }
  else{System.out.println("没有后缀");}
}

import java.io.File;

public class Selectfile {
    public static void main(String[] argv) {
        //获取文件路径
        File file=new File("E:\\javalianxi\\a");
        File[] filename = file.listFiles();
        for(int i = 0;i < filename.length;i++){
            //判断文件夹
            if(filename[i].isDirectory() == true){
                String filename1 = filename[i].getName();
                System.out.println(" (这是输出的空格位置,是文件夹"+filename1+")");
            }
            //判断文件
            else if(filename[i].isFile() == true){
                String filename2 = filename[i].getName();
                //获取最后一个.的位置
               int lastIndexOf = filename2.lastIndexOf(".")+1;
               //输出.后面的后缀名
               System.out.println(filename2.substring(lastIndexOf));
            }
        }
    }
}

图片说明

文件夹
图片说明