我这里有这个程序,它扫描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());
}
}
}
答案 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;
}