[Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符.

2023-05-30,,

首先这段代码在Unix/Linux系统上会去找路径,但在Windows系统上会去找C:盘还是D:盘还是其它盘呢?

其实它会去找user.dir所在盘符的根目录,user.dir即用户的当前工作目录,也就是你跑Java程序所在的目录,那么你跑Java程序所在路径的根盘符就是"/"指代的位置.

另外,由于\\ 和/ 在windows系统中的等效性,new File("\\")也会找到同一个盘符.

验证程序如下:

import java.io.File;
import java.util.Properties;

public class FileTest {
    public static void main(String[] args) {
        File filesFolder = new File("/");
        System.out.println("filesFolder's absolute path=:'" + filesFolder.getAbsolutePath()+"'.");

        String userDir=System.getProperty("user.dir");
        System.out.println("userDir='" + userDir+"'.");

        File filesFolder2 = new File("\\");
        System.out.println("filesFolder2's absolute path=:'" + filesFolder2.getAbsolutePath()+"'.");

        //Properties props = System.getProperties();
        //props.list(System.out);
    }
}

输出:

filesFolder's absolute path=:'C:\'.
userDir='C:\pleiades\userdir'.
filesFolder2's absolute path=:'C:\'.

大家可以把这段程序分别放到C:,D:,E:盘跑一下,看看和我所说的是否一致.

这种写法有一个明显的好处是如果Windows系统程序运行所在盘下有和Unix/Linux下同样的路径,比如程序在D:盘下跑,数据文件在d:/usr/data/abc下,Unix下也有/usr/data/abc路径,那么路径部分不需修改就可直接使用了.

--END-- 2019-11-29 15:33

[Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符.的相关教程结束。

《[Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符..doc》

下载本文的Word格式文档,以方便收藏与打印。