java怎么去除路径最后文件名,获取文件夹路径?

比如windows下C:\Users\ABC\Desktop\1.jpg,我只需要C:\Users\ABC\Desktop\再比如unix下/users/ABC/desk... 比如windows下C:\Users\ABC\Desktop\1.jpg,我只需要C:\Users\ABC\Desktop\
再比如unix下/users/ABC/desktop/1.jpg,我只需要/users/ABC/desktop/
要适用于不同系统

我用Sring.split("\\")无法分开windows下的路径不能成功,用“/”可以分开unix的路径能成功
说File.separator的可以停停了,自己去API文档看,这个静态属性是两个斜杠,我不能用这个
展开
 我来答
雪飞潇潇
2015-10-28 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:878万
展开全部
import java.io.File;

public class FileDemo {
public static void main(String[] args) {
File file = new File("C:\\Users\\lenovo\\Desktop\\user.png");
System.out.println(file.getAbsolutePath());
StringBuilder sb = new StringBuilder();
File temp = file;
while (temp.getParentFile() != null && temp.getParentFile().getName().length() != 0) {
sb.insert(0, "/" + temp.getParentFile().getName());
temp = temp.getParentFile();
}
sb.append("/");
System.out.println(sb);
}
}

输出

C:\Users\lenovo\Desktop\user.png
/Users/lenovo/Desktop/

file.getParent()表示取得父路径  


如果不用File.separator  还可以先判断操作系统,然后进行字符串操作

Properties props=System.getProperties(); //获得系统属性集    
String osName = props.getProperty("os.name"); //操作系统名称  
if(osName.toLowerCase().contains("windows")){
    //windows 的字符串操作
} else if(.......){
    //其他操作系统的字符串操作
}
flyk27
2015-10-28
知道答主
回答量:27
采纳率:0%
帮助的人:11.9万
展开全部
用File.separator去截取吧。最简单,学过io流要学会使用这个来处理跨平台的情况
追问
我用过,这个不行,我用的jdk和jre都是1.8.65,File.separator在Windows里是\\不是\
追答
少年,建议你直接学习jdk1.6的,现在企业也就1.5或者1.6的,你直接用1.8的话。到时候哭都没地方哭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式