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