• ベストアンサー

Javaでディレクトリを移動

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

  • Java
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • 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

  • Javaでカレントディレクトリを移動するには?

    Javaの中で、カレントなディレクトリを移動させ、相対PATHで既存ディレクトリを認識させたいのですが、期待する結果が得られません。 Javaの中でカレントディレクトリを移動する場合、System.setProperty()メソッドを利用して、"user.dir"を書き換えれば良いと思ったのですが、間違いでしょうか? 間違いである場合、Javaの中ディレクトリを移動させる方法はあるのでしょうか? 以下のプログラムは、下記状況下にて実行したものです。 C:\Java |-app ←プログラムを実行時にいるフォルダ |-sub ←相対PATHで認識させたい既存フォルダ ----------- ソース -------------------------- import java.io.*; class TestTest { public static void main(String args[]) { System.out.println("Current dir : " + System.getProperty("user.dir")); System.out.println("Move Dir !"); System.setProperty("user.dir","C:\\Java"); System.out.println("Current dir : " + System.getProperty("user.dir")); File f = new File("sub"); System.out.println("Dir existance : " + f.exists()); } } --------------------------------------------- ----------------実行結果---------------------- C:\Java\app>java TestTest Current dir : C:\Java\app Move Dir ! Current dir : C:\Java Dir existance : false ←trueにならない! --------------------------------------------

    • ベストアンサー
    • Java
  • ディレクトリへの移動が出来ない

    javaの勉強中です、「やさしいjava(2)」を今回購入し付録のCDより指示どうりにJDKをインストールしc:\program Files\Java\jdk1.5.0_04\に保存しました、パスの設定は環境変更にPATHはc:\program Files\Java\jdk1.5.0\04\binと入力しコマンドプロンプトでのディレクトリの移動時にcd c:\YJKSample\01と入力すると(指定されたパスが見つかりません)と表示されます。OSはWindowsXP Home Edition SP2 、です自力では解決出来ませんどうかご教授をお願いします。

    • ベストアンサー
    • Java
  • Linuxのchdir(カレントディレクトリが移動できない)

    環境はLinuxおよびcygwinです。 chdir()関数でカレントディレクトリを移動するプログラムを作成しようとしていますが、プログラムの実行後、「pwd」コマンドでカレントディレクトリを確認してもカレントディレクトリが移動されていません。 ソースコード(一部) chdir("/home/hogehoge"); としても、カレントディレクトリは移動せず、pwdコマンドで、 /home/hogehoge になりません。 chdir()関数はエラーを返していません。 もしくは、cdコマンドのソースコードが入手できれば、一番よいのですが・・・Linuxのカーネルやその他のソースコードを展開してもどこにあるか分かりません。 どなたかご教授お願いします。

  • JavaとC++はどう似てる?

    はじめまして。 最近Javaの勉強をしているのですが、やはりC言語に憧れがあります。 昔Cを少しだけやったのですが、さっぱり分かりませんでした。 このままJavaが使えるようになればC言語も楽に覚えられるのでしょうか?

  • Javaの勉強

    Javaを勉強しようと思っています。 初心者にもわかりやすくJavaを 教えてくれるオススメの本を教えて下さい! または、サイトでもいいです!!m(__)m プログラミングはC言語をやっていました。

  • JavaからCへ

    僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。

    • ベストアンサー
    • Java
  • Javaの勉強

    Javaを勉強しようと思っています。 初心者にもわかりやすくJavaを教えてくれる オススメの本を教えて下さい! または、サイトでもいいです!! プログラミングの経験はC言語です。

  • C言語でコマンドラインのカレントディレクトリの移動

    C言語でコマンドラインのカレントディレクトリを移動するということは可能でしょうか? ちなみに、 system("cd C:\\"); としてみても、ルートディレクトリに移動したりはしてくれませんでした。

  • Javaアプリ

    今日大学の授業でJavaを勉強しましたが、C言語はまだ分かる方ですが、Javaは分からない文字列ばっかりで、考え方が全く分かりません。 初心者はまず何から取り組んでいけばいいんでしょうか? コツを教えて下さい。お願いします。

    • ベストアンサー
    • Java
  • javaで

    今大学ではjavaを習っているんですが、いろいろ考えてゲーム会社にプログラマーとして就職したいと思っています。しかし僕の学校は一貫してjavaを教えていています。 そこで質問させていただきたいのですが、javaを習っていればC言語もできるようになりますか?もしくはC言語の勉強がしやすくなったりしますか。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう