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文档看,这个静态属性是两个斜杠,我不能用这个 展开
再比如unix下/users/ABC/desktop/1.jpg,我只需要/users/ABC/desktop/
要适用于不同系统
我用Sring.split("\\")无法分开windows下的路径不能成功,用“/”可以分开unix的路径能成功
说File.separator的可以停停了,自己去API文档看,这个静态属性是两个斜杠,我不能用这个 展开
2个回答
展开全部
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(.......){
//其他操作系统的字符串操作
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询