拆分窗口路径

时间:2011-01-20 10:33:31

标签: java regex

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

3 个答案:

答案 0 :(得分:8)

没有正则表达式需要使用标准库的java.io.File部分。

特别是getName()getParent()getParentFile()方法会更加简单。

答案 1 :(得分:1)

正则表达式?是和否 - 您可以使用使用正则表达式的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中没有文件夹。

答案 2 :(得分:1)

如果您需要拆分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]);