有人能告诉我如何拆分文件夹,文件和驱动器上的Windows路径吗? 我需要正则表达式吗?
答案 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]);