Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拆分窗口路径_Java_Regex - Fatal编程技术网

Java 拆分窗口路径

Java 拆分窗口路径,java,regex,Java,Regex,有人能告诉我如何分割文件夹、文件和驱动器上的windows路径吗? 我需要正则表达式吗?不需要正则表达式使用标准库的一部分 尤其是getName()、getParent()和getParentFile()方法,它们将更加简单。RegExp?是和否-您可以使用String#split,它使用正则表达式,尽管它通常感觉像使用普通字符串: String[] parts = "C:\\Program Files\\Application\\config.txt".split("\\\\"); 这将

有人能告诉我如何分割文件夹、文件和驱动器上的windows路径吗? 我需要正则表达式吗?

不需要正则表达式使用标准库的一部分


尤其是
getName()
getParent()
getParentFile()
方法,它们将更加简单。

RegExp?是和否-您可以使用
String#split
,它使用正则表达式,尽管它通常感觉像使用普通字符串:

  String[] parts = "C:\\Program Files\\Application\\config.txt".split("\\\\");
这将导致驱动器(
parts[0]
)、文件夹(
parts[1]
parts[2]
)和文件名(
parts[parts.length-1]


您可能需要测试第一段是否为驱动器名(以“:”结尾),最后一段是否为文件名(
file.isDirectory()
),以及某段是否包含文件夹(如
C:\test.txt

中没有文件夹,以防需要在nix平台windows文件名上拆分,反之亦然):

Pattern pt=Pattern.compile("\\\\\\\\|\\\\/");
String[] ar=pt.split("c:\\aaa\\bbb\\ccc");
String[] ar1=pt.split("/tmp/aaa/ddd");
System.out.println(ar[ar.length-1]);
System.out.println(ar1[ar1.length-1]);

…现在java代码是正确的,拆分需要4个反斜杠;)这种修复是不在这里使用正则表达式的原因,尤其是当文件完成所有需要的操作时;但它只是停留在分裂,而不是例外,没有什么,只是stop@Mark-一个要求是获得“驱动器号”段
File
不支持它,您必须从父路径中提取它(这可能会让我们回到这个解决方案…@Damir-仔细看看我的示例中的反斜杠数。它已经过测试,可以工作了。