Java 获取父文件的文件夹名称

Java 获取父文件的文件夹名称,java,Java,我正在使用一些代码,我希望根据文件所在的文件夹名,它的行为有所不同。我不需要绝对路径,只需要最终文件夹。到目前为止,我所看到的一切都是使用文件中指定的绝对路径。尝试方法 试试这个方法 有 String File.getParent() 还有 File File.getParentFile() 我不知道返回值是绝对的还是相对的,但是如果它是绝对的,你总是可以找到“\”字符的最后一个(或倒数第二个,取决于)实例(记住像这样转义“\”),以指示最低文件夹级别在哪里 例如,如果函数返回: “C:\U

我正在使用一些代码,我希望根据文件所在的文件夹名,它的行为有所不同。我不需要绝对路径,只需要最终文件夹。到目前为止,我所看到的一切都是使用文件中指定的绝对路径。

尝试方法

试试这个方法

String File.getParent()
还有

File File.getParentFile()
我不知道返回值是绝对的还是相对的,但是如果它是绝对的,你总是可以找到“\”字符的最后一个(或倒数第二个,取决于)实例(记住像这样转义“\”),以指示最低文件夹级别在哪里

例如,如果函数返回:

“C:\Users\YourName”是最后出现的“\”的位置,它后面的所有字符都是您想要的文件夹

“C:\Users\YourName\”是您获得倒数第二个“\”的位置,并且该位置和最后一个“\”之间的所有字符都将是您要查找的文件夹

Java文件API: 有

String File.getParent()
还有

File File.getParentFile()
我不知道返回值是绝对的还是相对的,但是如果它是绝对的,你总是可以找到“\”字符的最后一个(或倒数第二个,取决于)实例(记住像这样转义“\”),以指示最低文件夹级别在哪里

例如,如果函数返回:

“C:\Users\YourName”是最后出现的“\”的位置,它后面的所有字符都是您想要的文件夹

“C:\Users\YourName\”是您获得倒数第二个“\”的位置,并且该位置和最后一个“\”之间的所有字符都将是您要查找的文件夹

Java文件API: 我想这就是你想要的:

import java.io.File;

public class Demo {

   public static void main(String[] args) {
      File f = null;
      String parent="not found";
      f = new File("/tmp/test.txt");
      parent = f.getParent();
      System.out.print("parent name: "+v);
   }

}
我想这就是你想要的:

import java.io.File;

public class Demo {

   public static void main(String[] args) {
      File f = null;
      String parent="not found";
      f = new File("/tmp/test.txt");
      parent = f.getParent();
      System.out.print("parent name: "+v);
   }

}
这就是你想要的:

public static String getParentName(File file) {
    if(file == null || file.isDirectory()) {
            return null;
    }
    String parent = file.getParent();
    parent = parent.substring(parent.lastIndexOf("\\") + 1, parent.length());
    return parent;      
}
不幸的是,没有预先提供的方法只返回文件路径中最后一个文件夹的名称,因此您必须执行一些字符串操作才能获得它。

这就是您想要的:

public static String getParentName(File file) {
    if(file == null || file.isDirectory()) {
            return null;
    }
    String parent = file.getParent();
    parent = parent.substring(parent.lastIndexOf("\\") + 1, parent.length());
    return parent;      
}
String path = "/abc/def"; // path to the directory  
try
{
    File folder = new File(path);
    File[] listOfFiles = folder.listFiles();

    for (File file : listOfFiles) 
    {
      if(file.isDirectory())
      {
        switch(file.getName)
        {
             case "folder1" : //do something
              break
             case "folder2" : //do something else 
              break
        }  
      }
    }
}   
catch(Exception e) 
{
      System.out.println("Directory not Found"); 
}

不幸的是,没有预先提供的方法只返回文件路径中最后一个文件夹的名称,因此您必须执行一些字符串操作才能获得它。

抱歉,被中断了。get parent()返回父文件夹的完整路径名,而hamstring只需要最终文件夹的名称。例如,如果文件是“C:\test\parent\child.txt”,file.getParent()将返回“C:\test\parent”,而仓鼠只希望返回“parent”。在他的问题中,他提到“到目前为止,我所看到的一切都在使用绝对路径”,所以我认为他已经尝试了file.getParent()。@TJamesBoone现在可以了吗?对不起,被打断了。get parent()返回父文件夹的完整路径名,而hamstring只需要最终文件夹的名称。例如,如果文件是“C:\test\parent\child.txt”,file.getParent()将返回“C:\test\parent”,而仓鼠只希望返回“parent”。在他的问题中,TheHamstring指出“到目前为止我所看到的一切都在使用绝对路径”,所以我认为他已经尝试了file.getParent()。@TJamesBoone现在可以了吗?使方法空安全。。。实际上,它抛出空指针的唯一方法是如果文件本身为空,或者如果父项为空。。。这只有在文件类似于C驱动器的情况下才可能实现。我确信JavaAPI中有很多方法不是空安全的。如果我还遗漏了什么,请告诉我。使方法空值安全。。。实际上,它抛出空指针的唯一方法是如果文件本身为空,或者如果父项为空。。。这只有在文件类似于C驱动器的情况下才可能实现。我确信JavaAPI中有很多方法不是空安全的。如果我还遗漏了什么,请告诉我。我意识到我实际上是在尝试获取项目中代码文件所在的包的名称。我投票删除我的问题,以免混淆其他寻求帮助的人。我可以通过将“this”传递给字符串并在“.”上拆分来获取信息。我意识到我实际上是在试图获取项目中代码文件所在的包的名称。我投票删除我的问题,以免混淆其他寻求帮助的人。我可以通过将“this”传递给字符串并在“.”上拆分来获取信息
String path = "/abc/def"; // path to the directory  
try
{
    File folder = new File(path);
    File[] listOfFiles = folder.listFiles();

    for (File file : listOfFiles) 
    {
      if(file.isDirectory())
      {
        switch(file.getName)
        {
             case "folder1" : //do something
              break
             case "folder2" : //do something else 
              break
        }  
      }
    }
}   
catch(Exception e) 
{
      System.out.println("Directory not Found"); 
}