- ベストアンサー
Javaでディレクトリを移動
Javaを最近勉強し始めた初心者です。 Javaで、ディレクトリを移動するような処理をしたいのですが、C言語のchdirのような最適なメゾッドはあるのでしょうか?
- mr_flogman
- お礼率100% (4/4)
- Java
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お礼を見て気になったので追加します。 >Javaの基礎を勉強し、とりあえずLinuxでtreeを >実装してみようとおもいましたが、検索してもわからず、質問させていただきました。 treeってtreeコマンドの事ですよね? (指定ディレクトリ以下のファイル/ディレクトリをツリー表示する) それでしたら、やはりFileクラスを使用したほうがJavaの勉強になると思います。 File#listFiles()、File#isFile()、File#isDirectory()、File#getName()あたりのメソッドと 再起処理を組み合わせればできそうですね。chdir相当の処理は不要かと思います。 >JNI自体知りませんでした。 >とりあえず、JNIを調べてみようと思います。 JNIは必要になってから勉強しても遅くありません。 (というか、必要になるかどうかもあやしいです。)
その他の回答 (1)
- gimmick
- ベストアンサー率49% (134/270)
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を呼ぶことになると思います。
お礼
ご回答ありがとうございます。 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のカーネルやその他のソースコードを展開してもどこにあるか分かりません。 どなたかご教授お願いします。
- ベストアンサー
- C・C++・C#
- JavaとC++はどう似てる?
はじめまして。 最近Javaの勉強をしているのですが、やはりC言語に憧れがあります。 昔Cを少しだけやったのですが、さっぱり分かりませんでした。 このままJavaが使えるようになればC言語も楽に覚えられるのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- JavaからCへ
僕は今までJavaを勉強していたのですが、 つい最近になって、C言語に手をつけ始めました。 Javaを知っていればC言語は結構とっつきやすいのではないかと思って始めたのですが、Javaに慣れすぎたせいか、C言語の文法がどうもしっくりきません。 特に関数あたりが・・・・。 C言語の関数って、Javaでいうところのメソッドですよね? 僕はそのように解釈しているのですが、あまり自信がないので、ご存知の方がいましたらどなたか教えてください。 あと、Javaを学習した人のためのC言語の本、もしくはC言語を学んだ人のためのJavaの本がありましたら教えてください。
- ベストアンサー
- Java
- C言語でコマンドラインのカレントディレクトリの移動
C言語でコマンドラインのカレントディレクトリを移動するということは可能でしょうか? ちなみに、 system("cd C:\\"); としてみても、ルートディレクトリに移動したりはしてくれませんでした。
- ベストアンサー
- C・C++・C#
お礼
>treeってtreeコマンドの事ですよね? はい、その通りです。 本は見たものの、実際にプログラムを組んでみないと 実感できないとおもい、取り掛かりはじめました。 教えて頂いた、File関連のクラスを参考に、 実際に、ディレクトリを移動しないで、 再帰処理を行ってやってみようと思います。 ご丁寧に説明頂き、どうも有難うございました