如果我实例化了具有完整路径的文件,例如

    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(),getParentFile()之外,文件的每个获取器都将返回null。

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

Windows 10,如果有的话,但是我当然想跨平台安装。

最佳答案

借助@Tom的答案,工作方式看起来像

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

10-07 12:06