• ベストアンサー

File クラスでディレクトリの場所を自動で取得するには

現在のディレクトリにあるファイルを 自動で名前変更するプログラムを作りたいと思います。 例えば file name1.txt file name2.txt を file_name1.txt file_name2.txt にするものです。  http://takeoba.com/index.php?File%A5%AF%A5%E9%A5%B9 こちらを参考にしてみましたが、この場合ディレクトリ名を直接いれてますが 自動で取得することは可能でしょうか? File クラス以外でも大丈夫です。

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

java doc によれば、 「デフォルトでは、java.io パッケージのクラスは、常に現在のユーザディレクトリを基準に相対パス名を解決します」 つまり、アプリケーション開始クラスのあるディレクトリーをカレントディレクトリーとして、相対パスを指定すればいいのでは? クラスファイルと同じディレクトリーにあるファイルなら String infile = 'xx.txt'; java.io.File this_file = new File(infile); これでいけると思うけど? それとも、java.net.URLClassLoaderで、現在位置を取得するとか。 String infile = 'xx.txt'; java.io.File this_file = new File( this.getClass().getClassLoader().getResource(infile) ); この場合も、アプリケーション開始クラスのあるディレクトリーがカレントディレクトリーになります。 Applet なら、アプレット開始クラスのあるディレクトリーのjava.net.URLを返す getCodeBase() というmethodもあります。

hirosi1999
質問者

お礼

File file = new File("file"); String filePath = file.getAbsolutePath(); String dirName = filePath.substring(0, filePath.lastIndexOf("\\")); これで目的のものを取得できました。 回答ありがとうございました ^^

その他の回答 (2)

回答No.3

ANo.2 さんの方法でもいけるでしょうし、 もっと直接的な手段としては以下のようにシステムプロパティを参照する手があります。 System.getProperty("user.dir")

参考URL:
http://www.hellohiro.com/systemproperty.htm
hirosi1999
質問者

お礼

システムプロパティで色々調べられるのは面白いですね 回答ありがとうございました ^^

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>自動で取得することは可能でしょうか? 「自動」の意味がわかりません。 カレントディレクトリという意味?

hirosi1999
質問者

お礼

そうです

関連するQ&A