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