2011-01-20 142 views
2

任何人都可以告訴我如何拆分文件夾,文件和驅動器上的Windows路徑? 我需要正則表達式嗎?拆分窗口路徑

回答

1

RegExp? Yes和No - 您可以使用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

+0

......現在是正確的,都需要拆分Java代碼4個反斜線;) – 2011-01-20 10:49:21

8

沒有正則表達式需要使用java.io.File標準庫的一部分。

尤其是getName(),getParent()getParentFile()方法會簡單得多。

1

如果您需要在拆分尼克斯平臺的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]);