• ベストアンサー

Javaでディレクトリを移動

Javaを最近勉強し始めた初心者です。 Javaで、ディレクトリを移動するような処理をしたいのですが、C言語のchdirのような最適なメゾッドはあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

お礼を見て気になったので追加します。 >Javaの基礎を勉強し、とりあえずLinuxでtreeを >実装してみようとおもいましたが、検索してもわからず、質問させていただきました。 treeってtreeコマンドの事ですよね? (指定ディレクトリ以下のファイル/ディレクトリをツリー表示する) それでしたら、やはりFileクラスを使用したほうがJavaの勉強になると思います。 File#listFiles()、File#isFile()、File#isDirectory()、File#getName()あたりのメソッドと 再起処理を組み合わせればできそうですね。chdir相当の処理は不要かと思います。 >JNI自体知りませんでした。 >とりあえず、JNIを調べてみようと思います。 JNIは必要になってから勉強しても遅くありません。 (というか、必要になるかどうかもあやしいです。)

mr_flogman
質問者

お礼

>treeってtreeコマンドの事ですよね? はい、その通りです。 本は見たものの、実際にプログラムを組んでみないと 実感できないとおもい、取り掛かりはじめました。 教えて頂いた、File関連のクラスを参考に、 実際に、ディレクトリを移動しないで、 再帰処理を行ってやってみようと思います。 ご丁寧に説明頂き、どうも有難うございました

その他の回答 (1)

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

Fileクラスで相対パスを使用した場合、パスの基点はシステムプロパティの「user.dir」の値になります。 システムプロパティは、System#setProperty()で設定可能です。 Fileクラス http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html Systemクラス http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/System.html 上記の方法では不十分で本当にディレクトリを移動したい場合、JNIでプラットフォーム固有のAPIを呼ぶことになると思います。

mr_flogman
質問者

お礼

ご回答ありがとうございます。 Javaの基礎を勉強し、とりあえずLinuxでtreeを 実装してみようとおもいましたが、検索してもわからず、質問させていただきました。 Javaはプラットフォーム固有の処理は極力避けるようにできているんですね。 JNI自体知りませんでした。 とりあえず、JNIを調べてみようと思います。 参考になりました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう