首页 > windows目录分隔符是\,但D:\JavaBooks和D:/JavaBooks为什么都可以正确地打开JavaBooks目录?

windows目录分隔符是\,但D:\JavaBooks和D:/JavaBooks为什么都可以正确地打开JavaBooks目录?

1.问题描述
windows文件系统的目录分隔符是\,但是D:\JavaBooks和D:/JavaBooks为什么都可以正确地打开JavaBooks目录?

2.截图

3.代码

/**
     * 判断目录是否存在
     * @param fn 完整文件名(例如,E:\SrcMyeclipse10\ppet\2015-9-18\.metadata\.me_tcat\webapps\ROOT\photos\P\P0184\P0184-G.04.SAMPLE.jpg)
     * @return 布尔值
     */
    private boolean ensureDirectoryIsExisted(String fn) {
        fn = fn.replace('\\', '/');
        int pos = fn.lastIndexOf('/');
        if (pos == -1)
            return false;
        String path = fn.substring(0, pos);
        File f = new File(path);
        if (!f.exists())
            f.mkdirs();
        return f.exists();
    }

说明:这个判断目录是否存在的方法不管是在linux还是在windows都是没有问题的。

我现在不明白的就是,这行代码fn = fn.replace('\\', '/');把E:\SrcMyeclipse10\ppet\2015-9-18\.metadata\.me_tcat\webapps\ROOT\photos\P\P0184\P0184-G.04.SAMPLE.jpg替换成/之后在linux文件系统是可以判断目录是否存在(这个我能理解,因为linux的文件分隔符就是/),但是在windows上也是可以判断目录是否存在(这个我就不能理解,因为windows的文件分隔符不是\吗)?


为了兼容已经处理了,就像换行回车符一样

【热门文章】
【热门文章】