弦乐切割挑战,以有效地提高一个目录水平

时间:2010-06-24 01:51:55

标签: java

获得一个目录树级别的最有效方法是什么? 我正在寻找最有效的字符串类方法使用 从e:\ files \ report \ fruits \ apples

获取e:\ files \ report \ fruits

3 个答案:

答案 0 :(得分:4)

我认为你最好只使用

File f = new File("e:\\files\\report\\fruits\\apples");
String parent = f.getParent();

如果你坚持只使用String并假设'\'是路径分隔符,你可以这样做:

String s = "e:\\files\\report\\fruits\\apples";
String parent = s.substring(0, s.lastIndexOf('\\'));

但是你必须要注意边缘情况,比如找不到字符'\'。

答案 1 :(得分:3)

我不会通过“字符串抨击”来做到这一点,因为它会将路径名语法的各种平台依赖性嵌入到代码中。相反,请使用java.io.File类。

String parent = new File("e:\files\report\fruits\apples").getParent();

或更好:

File parent = new File("e:\files\report\fruits\apples").getParentFile();

答案 2 :(得分:0)

Stephen提出了关于平台依赖的有效观点,但这就是你要求的:

String dir = "e:\\files\\report\\fruits\\apples";
String parent = dir.replaceAll("\\\\[^\\\\]+$", "");