2012-04-18 11 views
0

私は私のアプリケーションで使用するパスをきれいにしたい。パスを変更することができ、時には私はそのようなものだ:Java - ファイルパスをクリーン

C:/users/Username/Desktop/\..\..\..\Windows\Web\..\..\Program Files\..\Program Files\..\Python27\ 

をしかし、私はのような何かがしたい:例です

C:\Python27\ 

を!

パスをクリーニングして必要な部分だけを取得するにはどうすればよいですか?

ありがとうございました。

+0

どのようにコードを作成しますか? – Dan

+0

私が使用しているコードは次のとおりです(クリーンパスなし)。http://stackoverflow.com/questions/10204722/java-exec-console/10205644#10205644 – Manitoba

+0

クリーンパスの基準は何ですか? 最後の '\'の後の部分だけですか? – Qowaz

答えて

5

fileNameがあなたのファイル名の文字列の場合は、のようなもの:

String cleanedFilename = new File(fileName).getCanonicalPath(); 

を行う必要がありますそれ...

SeもAPI descriptionです。

+0

ありがとうございます! – Manitoba

3

あなたはFile.getCanonicalPath()メソッドを使用して試みることができる:

File file = new File("my/init/path"); 
String path = file.getCanonicalPath(); 

私もテストしていない、私達に戻って教えて!

EDIT: @MathiasSchwarzは右である、(代わりにgetAbsolutePathのgetCanonicalPath()を使用)(link

+0

'..'と' .'を削除するために 'getAbsolutePath'は必要ありません。唯一の保証は、返されるパスが相対パスではないということです。 –

+0

ええ、私はそれを理解した、投稿した前に編集しました:) – sp00m

3

ここに私が試したコードがあります。

new File("c:/temp/..").getCanonicalPath();

それは 'C:\' を返し、そうであるが。 c:/tempの親は確かにc:\