我们都知道,在我们日常工作中,免不了总是和文件打交道,尤其对于Linux/Unix操作系统的用户而言,对文件的操作和处理总是很经常的事儿,就如日常便饭一样的。那么,我们有没有想过一个问题呢?如何去掉文件的后缀名只保留文件名或者只得到文件的后缀名呢?这样的情况,我相信我们工作中是经常遇见的。下面我们就来实践一下,看怎么实现这个功能。
public class FileDot {
private String allfilename; //文件的全名称 包括绝对路径和相对路径的情况
private String fileextension; //文件的后缀名
private String filename; //文件的名称
//返回文件后缀名的方法
private String returnextension(String file)
{
allfilename=file;
fileextension=allfilename.substring(allfilename.lastIndexOf("."),allfilename.length());
return fileextension;
}
//返回文件名称的方法
private String returnfilename(String file)
{
allfilename=file;
//windows下的绝对路径
if(allfilename.lastIndexOf("\\")!=-1)
{
filename=allfilename.substring((allfilename.lastIndexOf("\\")+1),allfilename.lastIndexOf("."));
}
//Linux下的绝对路径
else if(allfilename.lastIndexOf("/")!=-1)
{
filename=allfilename.substring((allfilename.lastIndexOf("/")+1),allfilename.lastIndexOf("."));
}
else
{
filename=allfilename.substring(0,allfilename.lastIndexOf("."));
}
return filename;
}
//程序主入口 示例
public static void main(String[] args)
{
FileDot fd=new FileDot();
System.out.println(fd.returnextension("E:\\home\\hello_world.apw"));
System.out.println(fd.returnfilename("/home/squirrel-chen/helloworld.txt"));
System.out.println(fd.returnfilename("E:\\home\\java\\hellojava.java"));
System.out.println(fd.returnextension("/home/squirrel-chen/helloworld.txt"));
System.out.println(fd.returnextension("E:\\home\\java\\hellojava.java"));
}
}
程序经测试通过,如有更好的方法,请告知我,谢谢。鄙人不才,如有错误,还望各位包涵!谢谢!