Java 用 \ 分割目标路径

Java split target path with \

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

我使用特定的文件夹结构:

  1. 主文件夹
  2. 正在处理子文件夹
  3. 已处理子文件夹

为了编写我的单元测试,我想将测试文件夹放在提供以下文件夹结构的目标中

target\test-folder\

这是主文件夹

target\test-folder\processing\

这是子文件夹处理

target\test-folder\processed

这是已处理的子文件夹

我想打印出某个文件在哪个文件夹中,我想做的是:

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

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

我应该输入什么作为 split 值?

首先,您使用反斜杠作为转义字符,而不是您想要的。您应该使用参数 "\" 拆分,但是我建议您使用 FileSystems.getDefault().getSeparator() 而不是反斜杠,因此它可能 运行 在 linux 或任何其他系统上(甚至可能在人们使用 ^ 作为路径分隔符的一些神奇之地)。不幸的是,在 Windows 它 returns \ (这是转义字符)所以你必须使用 Pattern.quote(String)

引用它

代码应如下所示:

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

您应该使用内置的 类 而不是拆分字符串,例如 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

输出:

target
test-folder
processed
processed