2012-03-13 10 views
1

Javaでは1レベル下のディレクトリに移動できますか?コマンドプロンプトでたとえば1レベル下のディレクトリに移動

C:\Users\foo\ 

私がに行くためにcd..を使用することができます。私はシステムを使用してディレクトリを取得していますので、

C:\Users\ 

は、Javaでこれを行うには、それが可能です.getProperty( "user.dir");しかし、それは私が働きたいと思うディレクトリではなく、むしろディレクトリの1つ下のレベルです。

私はPathクラスメソッドを使用することを考えました。 subpath(i,j)ですが、 "user.dir"を別のディレクトリに変更する場合は、返されたsubpathが異なります。

+0

私は 'C:\\ Users \\ foo \\ ..'は許可されていると思うので、パスに追加することができます。 – Jon

+0

こんにちは、試みたパスworkingDirPath = Paths.get(System.getProperty( "user.dir")+ "\\ ..");パスを印刷してください 追加すると、1つ下のレベルになりません。 – sutoL

答えて

2

私のシステムでは、 ".."はパスの有効なコンポーネントです。
例を示します。

File file; 
String userDir = System.getProperty("user.dir"); 
file = new File(userDir); 
System.out.println(file.getCanonicalPath()); 
file = new File(userDir+"/.."); 
System.out.println(file.getCanonicalPath()); 

出力は次のとおりです。

C:\ano\80g\workaces\_JAV_1.0.0\CODE_EXAMPLE 
C:\ano\80g\workaces\_JAV_1.0.0 
+0

ありがとうございました! – Jef

1

あなたがFileを使用してこれを行うことができ、指摘しています。また、あなたがやっているように見えるよう、Javaの7 NIOクラスを使用して、次のように同じことを行う必要があります。「/」は、Windowsのファイルシステム上の有効なディレクトリの区切りも同様であることを

Paths.get(System.getProperty("user.dir") + "/..").toRealPath(); 

注意を(けれどもI Linuxでこのコードをテストしました)。

関連する問題