Java分割目标路径用\

时间:2015-04-08 12:09:15

标签: java string split directory

我想控制我的文件在哪个文件夹中。

我使用某种文件夹结构:

  1. 主文件夹
  2. 处理子文件夹
  3. 已处理的子文件夹
  4. 要编写我的单元测试,我想将测试文件夹放在目标中,该文件夹提供以下文件夹结构

      

    目标\测试文件夹\

    这是主文件夹

      

    目标\测试夹\处理\

    这是子文件夹处理

      

    目标\测试夹\处理

    这是已处理的子文件夹

    我想打印出某个文件夹在哪个文件夹中,我想要做的是以下内容:

    String[] directories = PATH.split("\"");
    System.out.println(directories[directories.length - 2]);
    

    当我调试时,我看到我的数组目录只包含1个项目,包含整个路径,所以我的分割可能是错误的。

    我应该将split值作为什么?

2 个答案:

答案 0 :(得分:2)

首先,您使用反斜杠作为转义字符,而不是您想要的。您应该使用参数"\\"进行拆分,但是我建议您使用FileSystems.getDefault().getSeparator()而不是反斜杠,因此它可能会在Linux或任何其他系统上运行(甚至可能在人们使用的魔法土地上运行) ^作为路径分隔符)。不幸的是,在Windows中,它返回\(转义字符),因此您必须使用Pattern.quote(String)

引用它

代码应如下所示:

String[] directories = PATH.split(Pattern.quote(FileSystems.getDefault().getSeparator()));

答案 1 :(得分:1)

您应该使用内置类,例如Path,而不是拆分字符串。用于访问路径的各个元素的受控示例:

Path p = Paths.get("target/test-folder/processed");
for (Path element : p) System.out.println(element); //loop over all elements
System.out.println(p.getName(2)); //access a specific element

输出:

  

目标
  测试文件夹
  处理
  处理