アプリ版:「スタンプのみでお礼する」機能のリリースについて

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();
}
}

A 回答 (2件)

アプレットなんですよね。


基本的にアプレットは、セキュリティの問題上ローカル資源を使用することは出来ないのはご承知でしょうか?
java plun-inを使用すれば別ですが。。。

あと、ソースですがコンパイルできましたのでしょうか?
Appletには、getPathというメソッドは無いはずです。
それともTestクラスで別に定義しているのでしょうか?
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

別の方法でやることになりました。
ですが大変勉強になりました。

お礼日時:2001/03/21 17:09

Appletのインスタンスに対して


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

この回答への補足

AppletではgetPathは使えないんですね。

それでお伺いしたいのですが、下記の二つのやり方で、出来るのと
出来ないのがあります。
下の二つで行きますと、test.txtはクラスファイルと同じディレク
トリ内に存在します。
ですから、絶対パスでなくてもいけるはずですが、絶対パスでなけれ
ば、ファイルを読み込まないんです。
その為、わざわざパスを取得できるように何とかがんばっています。
下の二つのソースを見ただけでは原因はわからないと思いますが、もし
見当たる個所があれば教えてください。

また、アプレットクラスでパス名を取得することが出来る方法って他
に何かあるでしょうか?

File inputFile = new File("test.txt");
 →ファイルを読み込まない
File inputFile = new File("C:/Java/test.txt");
 →ファイルを正常に読み込む

補足日時:2001/03/21 15:29
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/03/21 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!