• ベストアンサー

現在使用しているJAVAファイルのあるパス名を取得する方法

JAVAアプレットで、FileInputStreamを使っていまして、読み込むファイル を絶対パスで指定しています。 ※なぜか絶対パスでないと、ファイルを読み込まないのでそうしています。 それで絶対パスで指定してあるわけですが、このプログラムをいずれ色ん なマシンに入れ込む予定ですが、マシンの環境によってはCドライブ以外 にインストールすることも考えられます。 その為、絶対パスできってあるため、Dドライブなど、Cドライブ以外にイ ンストールされた場合用に、各プログラムを手直ししないといけません。 出来れば、その手間を省きたいと思っています。 今考えているのは、対象となるファイル(JAVAファイル又はクラスファイル) のパス名を取得して、そこからsubstringで変数に入れ込んだ値の先頭から 3文字を取得してドライブ名を取得出来るようにして、最終的に取り込む ファイルの先頭に、取得したドライブ名を入れ込んでやればいけるのかな? と思っています。 それで肝心の、パス名を取得する方法ってありますでしょうか? ちなみにgetPathと言うものがありますが、やってみた所うまくいきません でした。やり方が悪かったのかな? 簡単ですが、以下のような感じでgetPathを使ってみました。 public class Test extends Applet{ Test test = new Test(); String Dire; public void init(){ Dire = test.getPath(); } }

  • gal
  • お礼率100% (8/8)
  • Java
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • snnk
  • ベストアンサー率60% (3/5)
回答No.2

アプレットなんですよね。 基本的にアプレットは、セキュリティの問題上ローカル資源を使用することは出来ないのはご承知でしょうか? java plun-inを使用すれば別ですが。。。 あと、ソースですがコンパイルできましたのでしょうか? Appletには、getPathというメソッドは無いはずです。 それともTestクラスで別に定義しているのでしょうか?

gal
質問者

お礼

どうもありがとうございました。 別の方法でやることになりました。 ですが大変勉強になりました。

その他の回答 (1)

noname#2875
noname#2875
回答No.1

Appletのインスタンスに対して getPathとしてもコンパイルエラーでるのではないでしょうかね…。 AppletクラスにgetPathメソッド定義ないような気がしますが……。 FileクラスとかURLクラスとか…のインスタンスに対して使うメソッドだとおもうのですが…。 それともTestクラスに独自に定義してますか?

gal
質問者

お礼

貴重なご意見どうもありがとうございました。

gal
質問者

補足

AppletではgetPathは使えないんですね。 それでお伺いしたいのですが、下記の二つのやり方で、出来るのと 出来ないのがあります。 下の二つで行きますと、test.txtはクラスファイルと同じディレク トリ内に存在します。 ですから、絶対パスでなくてもいけるはずですが、絶対パスでなけれ ば、ファイルを読み込まないんです。 その為、わざわざパスを取得できるように何とかがんばっています。 下の二つのソースを見ただけでは原因はわからないと思いますが、もし 見当たる個所があれば教えてください。 また、アプレットクラスでパス名を取得することが出来る方法って他 に何かあるでしょうか? File inputFile = new File("test.txt");  →ファイルを読み込まない File inputFile = new File("C:/Java/test.txt");  →ファイルを正常に読み込む

関連するQ&A

  • ファイルのパスの取得について

    いつも参考にさせて頂いています。 掲示板をファイル操作にて作成しようと思っています。 初歩的な質問かもしれませんが宜しくお願いします。 フォルダ構成が下記の場合、「confフォルダのtest.txt」を読み込む際のパスはどのように取得もしくは指定すれば良いでしょうか? プロジェクトフォルダ  |  |----JavaSource ←.javaファイルを格納  |----WebContent      |----css      |----js      |----WEB-INF          |----conf ←このフォルダ内のtest.txt          |----jsp          |----lib ファイルの読み込みはBufferedReaderクラスを使うと効率よく読み込めるとネットで記述があったのでそれを使おうと思ってます。 BufferedReader br = new BuffferedReader(new FileReader("test.txt") ); みたいな感じで読み取れると思ってますが合ってますでしょうか? ("test.txt"の箇所に取得した(絶対又は相対)パスが入ると思ってます。) 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • ファイルアップロード時にファイル名の絶対パスを取得を教えてください

    ファイルアップロード時にクライアント側のファイル名の絶対パスを取得する方法を教えてください。 $_FILESには絶対パスでなくファイル名だけしか入っていないのですがこの変数からは取得できないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 絶対パスからのファイル名の切り離し

    VC++6.0でCのコードを書いています。 絶対パスからのファイル名の切り出し方に関して質問です。 FILEPATH="C:\TEST\test.txt" というファイルがあるとして "C:\TEST"と"test.txt"の部分を切り離したいと思っています。 フォルダ位置は可変("C:\TEST\TEST"が来ることもある。) このときに FILEPATHの先頭アドレスから最後まで \マークがいくつ来ているか判断して 最後の\マーク以降とそれ以前を strcpyなどでコピーすればできると思うのですが、 この際、 1.\マークの数を数える 2.最後の\マークの手前までパス名をコピー 3.最後の\マーク以降をファイル名としてコピー という作業が必要になると思いますが もっと簡単に行う方法があればお教えいただければと思っています。 (標準関数を使用して・・・など) よろしくお願いします。

  • CFileDialogを使用して、Pathを取得する方法

    お世話になっております。 CFileDialogクラスを使用して、Pathを取得する 方法がないでしょうか? 処理の流れでは、下記のような考えでいます。 (1)ダイアログ上の「参照」ボタンを押すと、ファイルダイアログが表示される。 (2)ファイルダイアログで、ディレクトリを移動し、任意のディレクトリまで移動したら、「開く」(または保存)を押下する。 (3)ファイルダイアログを閉じ、移動したPathを取得する。 です。 ファイルダイアログを開くところまでは出来ていますが、ファイル名を指定しないで、「開く」(または保存)を押しても、ファイルダイアログが閉じないので、困っています。 (3)のパス取得に関しては、既に処理の方法はわかっているので、(2)の部分(ファイル名を指定しないで、「開く」(または保存)でファイルダイアログを閉じる方法)をご教唆ください。 よろしくお願いします。

  • VBSを利用して、ファイル名を取得

    VBSを利用して、ファイル名を取得 はじめまして VBSを利用して、ファイルのフルパスを取得したいと思っております。 具体的には、フォルダ内のファイルを1ファイルずつ取得するようなプログラムを 作成したいと思っております。 C:\TEST \2010 \aaa.csv C:\TEST \2010 \bbb.csv C:\TEST \2009 \ccc.csv C:\TEST \2008 \ddd.csv C:\TEST \2008 \eee.csv フルパスを取得したいのですが、どのようにしたら良いでしょうか。 最終的には、上記の読み込んだファイルごとにファイルの中身を1行ずつ確認して、 特定の文字が含まれているか確認をするようなスクリプトにしようと思っております。 そのため、objFS.OpenTextFile("取得フルパス",ForReading)のようにして 取得したフルパスごとに読み込みをしようと思っております。 どなたか、お手数ではございますが、ご教授願います。

  • フルパスからファイル名取得の方法

    指定したフォルダのフルパスを「bmpFiles」に入れているのですが、表示する時はファイル名のみの表示にしたくて「Path.GetFileName」を使用してファイル名を取得しようとしたのですが、「型'stringの1次元配列'の値を'string'に変換できません」というエラーが出てしまいます。 VBを始めたばかりでよく分からないのでアドバイスをお願いします。 Dim imageDir As String = fbd.SelectedPath ' 指定フォルダまでのディレクトリ Dim bmpFiles As String() = _ System.IO.Directory.GetFiles(imageDir, "*.bmp") 'フルパス Dim bmpFileName As String = _ Path.GetFileName(bmpFiles)  ←bmpFilesで上記エラー

  • VB6.0で現在参照しているエクセルファイルの絶対パスを取得したい

    VB6.0で現在参照しているエクセルファイルの絶対パスを取得したい 環境:VB6.0/Excel2003/WindowsXP VB初心者です。 現在プログラム内で参照しているexcelファイルの絶対パスと、フォームのテキストボックスに入力された絶対パスを比較して、 それらが同一だった場合エラーを表示するというプログラムを作成しています。 プログラム内では、現在開かれているエクセルファイルの内容をチェックして、対象となるデータを持っているエクセルファイルを1つ選択し、データを取り込むという動きをしています。 現在開かれているファイルのパスと入力されたパスを比較する事は出来たのですが、 そうではなくデータを取り込んでいるエクセルファイルのみ比較したいのです。 (複数のファイルが開かれている場合、データを取り込んでいるファイルとは別のファイルのパスが入力されたファイルパスと同一だったときもエラーとなってしまうので..) データを取得しているところからはフルパスは取れそうにないので、ほかの方法を模索しています。 どうぞ宜しくお願い致します。

  • フルパスを取得するにはどうすればいいですか

    access2003です 自身のファイル名を取得するのは Sub test() MsgBox CurrentProject.Name End Sub で出来ますが フルパスを取得するにはどうすればいいですか? よろしくお願い致します。

  • そのファイルのパスって取得できますか?

    ExcelでVBAを書いているんですが、たとえば、マイドキュメントとかのパスって、調べることが出来ますよね? そういった感じで、自身がどこにいるかも取得する方法ってあるのでしょうか? もちろん、ファイルを指定するようなダイアログを出せば出来るんですが、今回のは、そういったことじゃなくて、ユーザ側には何の操作もさせないことを考えています。 最終的にやりたいことは、同じディレクトリ内のファイルとの同期なんですが、やはり、ファイルの位置は、フルパスで指定しないとダメなんでしょうか。 どなたか、よろしくお願い致します。

  • ファイル名を取得できない

    次のようなソースでディレクトリ内のファイル名を取得しようとしています。 $dh=opendir("."); while(($entry=readdir($dh))){ if(is_file($entry)){ print $entry."<>"; } } closedir($dh); このソースを、取得したいディレクトリ内で動かすとまったく問題ないのですが、ディレクトリのパスを1個上の階層などから相対パスで指定すると、.phpファイルと.htmlファイルは取得するのですが、ほかのファイル名は取得されなくなってしまいます。 何かphp.iniなどで設定があるのでしょうか。 回避方法がありましたら是非ご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう