<pre name="code" class="java">import java.io.File;
public class Test {
public static void main(String[] args) {
File a = new File("d:");
System.out.println(a.getAbsolutePath());
}
}
上面这段代码生成的程序, 放在d盘以外的其他盘, 输出的是 d:<br />
但是放在d盘的任一文件夹下, 输出就变成了程序所在的文件夹
感觉像是JDK的BUG, 但我看了File的源码, 字符串的解析却不是在java里做的... 貌似是用JNI扔给了windows
大惑不解, 求教
问题补充
lz当年肯定没学过dos,dos下面运行一下如下命令
E:
CD E:\1
DIR D:
PAUSE
CLS
CD D:\1
DIR D:
PAUSE
……
相对路径啊,只说明是D盘不够,要说明是D盘根目录
就是改成下面这样
File a = new File("d:/");
放到其他盘也是相对路径啊,只不过相对路径正好是D盘根目录而已。
public String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。
API文档
楼主用的文件管理器是啥
[quote="captmjc"]lz当年肯定没学过dos,dos下面运行一下如下命令
E:
CD E:\1
DIR D:
PAUSE
CLS
CD D:\1
DIR D:
PAUSE
[/quote]
正解