我可以使用以下文件名:
/ somepath /文件
该文件没有扩展名,因此在Java中,getPath最终返回整个路径和文件名。假设路径/文件名中的最后一个东西始终是文件名,我该如何提取路径?最简单的解决方案就是寻找最后的正斜杠。但是有内置的API可以获得吗?
编辑:错误。我的意思是如何提取路径(而不是文件名)。遗憾。
答案 0 :(得分:2)
File file = new File("/somepath/file");
file.getName();
编辑:如果你想路径试试这个
file.getCanonicalPath();
此外,您可以使用文件对象上的属性来提取各种类型的文件相关数据。
答案 1 :(得分:2)
使用Java SE 7:
Path path = Paths.get("/somepath/file");
String fileName = path.getFileName().toString();
Path parentPath = path.getParent();
修改强>
注意:根据您的操作,请考虑不要对根目录(此处为“/”)和分隔符(此处为“/”)进行硬编码,并确保代码与平台无关。
答案 2 :(得分:0)
使用lastIndexOf()
和substring()
System.out.println(fileObj.getPath().substring(0, f.getPath().lastIndexOf("/"));
编辑:刚刚发现getParent()
的存在,它将直接为您提供该文件的目录。
System.out.println(fileObj.getParent());
答案 3 :(得分:0)
在班级getName()
中尝试使用File
方法。
答案 4 :(得分:0)
使用getParent()
File file = new File("/somepath/file");
file.getParent();
这会给你“/ somepath”。