Java 如何获取文件扩展名?

Java 如何获取文件扩展名?,java,command,system,Java,Command,System,这是我的代码,我已经开发,但我有一件事卡住了。我想让我的程序识别目录中的文件扩展名是什么 import java.io.File; public class SystemCommands{ public static void main (String args[]){ String dir_name = "C:\\Program Files\\WinRAR"; File dir = new File(dir_name); File[] dir_

这是我的代码,我已经开发,但我有一件事卡住了。我想让我的程序识别目录中的文件扩展名是什么

import java.io.File;
public class SystemCommands{

   public static void main (String args[]){

      String dir_name = "C:\\Program Files\\WinRAR"; 
      File dir = new File(dir_name);

      File[] dir_list = dir.listFiles();
      for(int i=0;i<dir_list.length;++i)
      {
          System.out.println(dir_list[i].getName());
          System.out.println("Is it a directory = " + dir_list[i].isDirectory());
          System.out.println("Is it a file = " + dir_list[i].isFile());
      }
   }
}
导入java.io.File;
公共类系统命令{
公共静态void main(字符串参数[]){
String dir_name=“C:\\Program Files\\WinRAR”;
文件目录=新文件(目录名称);
File[]dir_list=dir.listFiles();
对于(int i=0;i,您可以使用并简单地执行以下操作:

String file = dir_list[i].toString();
System.out.println(file.substring(0, file.lastIndexOf('.')));
或者,更可取的是,您可以使用:

字符串文件名=null;

对于(int i=0;i使用Apache Commons IO中的FilenameUtils.getExtension

以下是一个使用示例:

String ext = FilenameUtils.getExtension("/path/file/file.txt");

“识别”是什么意思?你想过滤它们还是什么?请指定文件类型的过滤器。例如,在WinRAR中,我有WinRAR.txt,程序会说WinRAR.txt有.txt扩展名。不必是第一个索引扩展名。@Deepak213你能给我一个例子吗?比如,如果文件名是“abc.abc.txt”那么您的案例将失败。@Deepak213是正确的。您应该使用
lastIndexOf
而不是
split
,或者打印
str
中的最后一个元素。但是检查最后一个索引的问题是,它不会为“test.log.0”、“test.tar.gz”等文件提供正确的扩展名……您同意吗?
File f = new File("test.txt");
            String [] str = f.getName().split("\\.");
            if(str.length>1) {
                System.out.println(str[1]);
            }else {
                System.out.println("No extension. File name is :" + str[0]);
            }
String filename=null;    
for(int i=0;i<dir_list.length;++i)
       {
        filename=dir_list[i].getName();
        if(dir_list[i].isFile())
         {
           System.out.println(filename.split(\\.)[(filename.split(\\.)).length-1]);
         }

       }
String ext = FilenameUtils.getExtension("/path/file/file.txt");
Try this one...


File fileName= new File("Animation.xml");    
String str= fileName.getName();    
System.out.println(fileName.getName());    
System.out.println(str.substring(str.lastIndexOf(".")));