如何使用split()删除路径中的最后一个目的地?

Fra*_*pes 2 java directory split path

我有路径列表,我需要删除每个路径的最后一个目录。

路径:“ I:\ Directory_1 \ Directory_2 \ Directory_3-Sometext”我使用split方法删除了'-'右侧的所有内容

我试过使用split()一一删除,然后将所有内容重新组合到一个字符串中。我试过在(“ \”)上分割所有内容并使用lenght()

//Removes text after '-'
String [] parts = path.split("-")
String partsA = parts[0]

String [] newParts = partsA.split("\\\\");
String partsB = newParts[newParts.length-1];

partsA = partsA.substring(partsA.length()-partsB.length(),partsA.length()+partsB.length());
Run Code Online (Sandbox Code Playgroud)

我希望输出是

\ Directory_1 \ Directory_2

没有最后的目录和文本

ass*_*ias 5

除了使用字符串操作,您还可以使用适当的路径/文件对象,其附加好处是它可以处理其他类型的路径(例如,诸如的unix路径/home/directory1):

String f = "I:\\Directory_1\\Directory_2\\Directory_3-Sometext";
Path p = Paths.get(f);
Path parent = p.getParent();
System.out.println(parent.toString());
Run Code Online (Sandbox Code Playgroud)