我想控制我的文件在哪个文件夹中。
我使用某种文件夹结构:
要编写我的单元测试,我想将测试文件夹放在目标中,该文件夹提供以下文件夹结构
目标\测试文件夹\
这是主文件夹
目标\测试夹\处理\
这是子文件夹处理
目标\测试夹\处理
这是已处理的子文件夹
我想打印出某个文件夹在哪个文件夹中,我想要做的是以下内容:
String[] directories = PATH.split("\"");
System.out.println(directories[directories.length - 2]);
当我调试时,我看到我的数组目录只包含1个项目,包含整个路径,所以我的分割可能是错误的。
我应该将split
值作为什么?
答案 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
输出:
目标
测试文件夹
处理
处理