【发布时间】:2011-09-04 02:24:53
【问题描述】:
有没有办法转换这个:
/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/myJar.jar
进入这个?:
C:\Users\David\Dropbox\My Programs\Java\Test\bin\myJar.jar
我正在使用以下代码,它将返回 .JAR 存档的完整路径或 /bin 目录。
fullPath = new String(MainInterface.class.getProtectionDomain()
.getCodeSource().getLocation().getPath());
问题是,getLocation() 返回一个URL,我需要一个普通的 Windows 文件名。
我尝试在getLocation() 之后添加以下内容:
toString() 和 toExternalForm() 都返回:
file:/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/
getPath() 返回:
/C:/Users/David/Dropbox/My%20Programs/Java/Test/bin/
注意%20 应该转换为空格。
有没有一种快速简便的方法来做到这一点?
【问题讨论】:
-
好吧,我尝试对空格使用查找和替换并删除第一个字符,但我不太喜欢它。这就是为什么我在这里问的原因,也许有人知道某种方法可以以一种不易出错且更有效的方式进行转换。
-
对获取 jar 文件的完整文件名的任何替代方法也表示赞赏。
-
@David 你的意思是 String WinPath = System.getenv("USERPROFILE"); WinPath = WinPath.replace("\\", "\\\\"); WinPath += "\\\\Desktop\\\\SalesReports\\\\";
标签: java file url path filenames