Java如何在给定文件上指定扩展名

时间:2014-03-19 22:56:13

标签: java file

我这里有这个程序,它扫描WinRar文件夹中的所有文件,并确定它是目录还是文件。但是我想让它能够确定文件的扩展名。例如,假设我在WinRar中有setup.exe,程序打印Setup.exe的扩展名为.exe

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

}

}



}

3 个答案:

答案 0 :(得分:1)

我喜欢使用Commons IO,它有FilenameUtils#getExtension

String extension = FilenameUtils.getExtension(dir_list[i].getName());

答案 1 :(得分:0)

你可以使用Thilo回答的一个简单的行,但是使用第三方API OR
你可以找到“。”在绝对文件路径中,然后在“。”之后读取字符序列 例如:

String path = dir_list[i].getAbsolutePath();
int position  = path.indexOf(".");
String extension = path.subString(position);

你应该选择Thilo的答案:D

答案 2 :(得分:0)

简单地解析路径以检查点(。)的最后一个索引并执行子串以获得扩展。

private static String getExtension(File file)
    {
        return getExtension(file.getAbsolutePath());
    }

    private static String getExtension(String path)
    {
        String extension = null;

        int lastIndexOfDot = path.lastIndexOf(".");

        if (lastIndexOfDot != -1)
        {
            extension = path.substring(lastIndexOfDot + 1);
        }
        return extension;
    }