获得一个目录树级别的最有效方法是什么? 我正在寻找最有效的字符串类方法使用 从e:\ files \ report \ fruits \ apples
获取e:\ files \ report \ fruits答案 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("\\\\[^\\\\]+$", "");