首页 > 解决方案 > 如何获取通过在工作目录中设置文件名来实例化的文件的 File.getParent()?

问题描述

如果我用完整路径实例化了一个文件,例如

    File file = null;
    try {
        file = new File(new URI("file:/C:/java2018/infa2019_2sm/test.txt"));
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

以后可以打电话

   File directory = file.getParentFile(); 

并将其分配到 C:/java2018/infa2019_2sm 目录

但是如果我们只用工作目录中现有文件的文件名来实例化文件,就像这样

   File file=new File("test.txt");

除了 getParentFile() 之外,文件的每个 getter 都有效,getParentFile() 返回 null。

那么,使用相对于工作目录的完整路径和短路径来实例化 File 对象的保证目录的合法方法是什么?是否有可能使用 java.io 或者我需要使用 java.nio 吗?

Windows 10,如果重要的话,但我当然希望它是跨平台的。

标签: javajava-io

解决方案


在@Tom的回答的帮助下,工作方式看起来像

   File directory=new File(new File(file.getAbsolutePath()).getParent());

推荐阅读