-1

我正在尝试返回文件/目录的目录及其目录。

例如,我有"this/iss/the/root/assets/images/icons/parent"哪个是"this/iss/the/root/assets/images/icons/parent/child.

这将是根路径this/iss/the/root,我想获取根路径之后的所有内容:assets/images/icons/examples'即给定根,我如何提取根之后但子之前的所有目录?

我努力了:

parent.lastIndexOf(root)

但它给了我整个父路径。

抱歉,这很啰嗦。我已经花了很长时间盯着我的代码不停地盯着我的代码,现在已经快午夜了!

4

3 回答 3

1

尝试这个:

    String str = "this/iss/the/root/assets/images/icons/parent/child";
    String root = "this/iss/the/root/";
    String rootRegex = root.replace("/", "\\/"); //escape fwd slashes
    String ptrnStr = "^" + rootRegex + "(.+)child\\Z";
    java.util.regex.Pattern ptrn = Pattern.compile(ptrnStr); 

    java.util.regex.Matcher mtchr = ptrn.matcher(str);

    if(mtchr.find())
    {
        String between = mtchr.group(1);
        System.out.println("FOUND:  " + between);
    }
于 2012-10-26T22:22:47.970 回答
0

一种方法可能是这样,#lastIndexOf()结合#substring()

String parent = "this/iss/the/root/assets/images/icons/parent";
if (parent.lastIndexOf("root/") != -1) {
    child = parent.substring(parent.lastIndexOf("root/") + 5);
}
于 2012-10-26T22:15:13.763 回答
0

我会推荐你​​使用 Java 7 中的Path类。

您只需打电话path.getParent()或打电话iterator()并工作,直到您到达目的地。

于 2012-10-26T22:17:44.063 回答