2011-01-20 4 views
2

フォルダ、ファイル、ドライブのWindowsパスを分割する方法を誰かに教えてもらえますか? 正規表現が必要ですか?分割ウィンドウのパス

答えて

1

RegExp?

String[] parts = "C:\\Program Files\\Application\\config.txt".split("\\\\"); 

これはドライブ(parts[0])になり、フォルダ(parts[1]parts[2])とファイル名(: - なしとはいあなたはそれがしばしば通常の文字列を使用してのようなを感じているにもかかわらず、正規表現を使用していますString#splitを使用することができます最初のセグメントは、ドライブ名で場合はをテストする必要がありparts[parts.length-1]

(で終わる「:」)、最後のセグメントは、ファイル名(file.isDirectory()である)とセグメントはありませんフォルダのようなフォルダを(含まれている場合C:\test.txt。あなたはnixのプラットフォームWindowsのファイル名、またはその逆で分割必要がある場合には

+0

...今のJavaコードは4つのバックスラッシュを分割するために必要な、正しい;) –

+0

固定のその種がされここで正規表現を使用しない理由は、特にFileが必要とするすべてを行うためです。 – Mark

+0

私はappパス= "C:\ test \ test"に入り、String [] temp = path.split( "\\");を書きました。それはちょうど分割で停止し、例外ではなく、何もない、ただ停止する – Damir

8

標準ライブラリの一部であるjava.io.Fileの正規表現は必要ありません。

特に、getName(),getParent()およびgetParentFile()の方法ははるかに簡単です。

1

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]); 
関連する問題