使用Java从File获取第一个Parent(卷名或驱动器号)

时间:2017-03-29 23:42:56

标签: java file-io

  
      
  1. 第一个问题(实际上这个我需要更多)
  2.   

我搜索了谷歌,但我找不到怎么做。 例如,我有路径:

C:\Users\Alexander\Desktop\Hello\Hello2\AudioFile.mp3

我想获取包含此File的驱动器卷的名称,此处为 C

我到目前为止所做的是:

new File(path).substring(0,1); 

但是如果驱动器有两个字母怎么办..

  
      
  1. 第二个问题
  2.   

如果我想获得它存在的文件的第3个父项(桌面),该怎么办。

您能否就上述问题提供答案?

PS: 我找到Paths.get(path).getRoot().toString()但它返回C:\

1 个答案:

答案 0 :(得分:0)

Apache Commons IO有一个FilenameUtils类,其getPrefix()方法执行您在问题1中提出的问题。

我想你可以从Apache Commons IO找到解决2个问题的方法。

String filename = "C:\Users\Alexander\Desktop\Hello\Hello2\AudioFile.mp3";

String prefix = FilenameUtils.getPrefix(filename);
System.out.println("Prefix: " + prefix);


String path = FilenameUtils.getPath(filename);
System.out.println("Path: " + path);

String fullPath = FilenameUtils.getFullPath(filename);
System.out.println("Full path: " + fullPath);

String name = FilenameUtils.getName(filename);
System.out.println("Name: " + name);

String baseName = FilenameUtils.getBaseName(filename);
System.out.println("Base name: " + baseName);

String extension = FilenameUtils.getExtension(filename);
System.out.println("Extension: " + extension);