【问题标题】:Getting the directory name in java在java中获取目录名称
【发布时间】:2010-06-09 21:12:11
【问题描述】:

如何在 Java 中获取驱动器上特定 java.io.File 的目录名称?

例如,我的 D 盘目录下有一个名为 test.java 的文件。

我想返回这个文件的目录名。

【问题讨论】:

    标签: java file-io


    【解决方案1】:
    File file = new File("d:/test/test.java");
    File parentDir = file.getParentFile(); // to get the parent dir 
    String parentDirName = file.getParent(); // to get the parent dir name
    

    请记住,java.io.File 代表目录和文件。

    【讨论】:

    • @skaffman 我不是从文件的路径名中获取父目录名吗?
    • 对我不起作用。 getParent() 返回 null。
    【解决方案2】:

    在 Java 7 中还有另一种方法:

    Path path = Paths.get("d:/test/test.java"); 
    Path parent = path.getParent();
    //getFileName() returns file name for 
    //files and dir name for directories
    String parentDirName = path.getFileName().toString();
    

    我(稍微)更喜欢这种方式,因为它是在操纵路径而不是文件,恕我直言,这更好地表明了意图。您可以在Legacy File I/O Code 教程中了解 File 和 Path 之间的区别

    【讨论】:

      【解决方案3】:

      另请注意,如果您以这种方式创建文件(假设“d:/test/”是当前工作目录):

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

      您可能会感到惊讶,getParentFile() 和 getParent() 都返回 null。无论文件是如何创建的,都使用这些来获取父目录:

      File parentDir = file.getAbsoluteFile().getParentFile();
      String parentDirName = file.getAbsoluteFile().getParent();
      

      【讨论】:

      • 这个答案得到了我的绿色检查。
      【解决方案4】:
      File file = new File("d:/test/test.java");
      String dirName = file.getParentFile().getName();
      

      【讨论】:

        【解决方案5】:

        假设您在C:\\myfolder 目录中有一个名为test.java 的文件。使用下面的代码,您可以找到该文件所在的目录。

        String fileDirectory = new File("C:\\myfolder\\test.java").getAbsolutePath(); 
        fileDirectory = fileDirectory.substring(0,fileDirectory.lastIndexOf("\\"));
        

        此代码将输出为C:\\myfolder

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-14
          • 1970-01-01
          • 2019-10-14
          • 1970-01-01
          • 2011-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多