<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
大惑不解, 求教
问题补充
IcyFenix 写道
……
相对路径啊,只说明是D盘不够,要说明是D盘根目录
就是改成下面这样
File a = new File("d:/");
相对路径啊,只说明是D盘不够,要说明是D盘根目录
就是改成下面这样
File a = new File("d:/");
那为什么程序在其他盘的时候不会被认为是相对路径呢
问题补充
IcyFenix 写道
放到其他盘也是相对路径啊,只不过相对路径正好是D盘根目录而已。
相对路径不是相对于当前目录的路径麽, 怎么会相对到其他盘的根目录了呢...
问题补充
captmjc 写道
lz当年肯定没学过dos,dos下面运行一下如下命令
E:
CD E:\1
DIR D:
PAUSE
CLS
CD D:\1
DIR D:
PAUSE
E:
CD E:\1
DIR D:
PAUSE
CLS
CD D:\1
DIR D:
PAUSE
终于有人看懂我的问题了,果然是跟windows有关,兄台厉害
PS: 当年的确是没学过DOS,因为DOS风行当年我还在读幼儿园