可以通过System.getProperty("file.separator")来得到系统相关的路径分隔符。
File.pathSeparator也可以,它实际也是取得了file.separator系统属性
static {separatorChar = System.getProperty("file.separator", "/").charAt(0)
pathSeparatorChar = System.getProperty("path.separator", ":").charAt(0)
separator = String.valueOf(separatorChar)
pathSeparator = String.valueOf(pathSeparatorChar)
}
这是类File中的相关源码
需要2个变量一个是当前路径,另一个是方案栏中的路径。比较字符串,这个你应该会做了吧。第二个变量的减去第一个变量,然后做适当更改就是你要的相对路径了楼主 如果你的程序在E盘或者D盘 就没有相对路径了。
如果的程序在“c:\documents and settings\administrator\桌面\” 那么相对路径就应当是c:\documents and settings\administrator\桌面\MY\雨的印记.wav -c:\documents and settings\administrator\桌面\” =“/MY/雨的印记.wav ”
如果的你程序在桌面下的另一文件夹下例如Test文件下 也就是说程序的路径在:c:\documents and settings\administrator\桌面\Test\
相对路径就应当是“../MY/雨的印记.wav ”
. 一点代表当前目录
.. 两点代表上一目录
直接通过正则表达式进行替换即可(备注:反斜杠为"\",正斜杠为"/"),代码如下:public class Test {
public static void main(String[] args) {
String path = "D:\\FTP\\admin\\bird.gif"//文件路径,双斜杠输出的是一个斜杠
System.out.println(path)//打印路径
//JAVA中正则表达式,用"\\\\"表示"\"
path = path.replaceAll("\\\\", "/")
System.out.println(path)//打印路径
}
}
输出结果为:
D:\FTP\admin\bird.gif
D:/FTP/admin/bird.gif
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)