dポイントプレゼントキャンペーン実施中!

ListFilesでネットワーク越しにフォルダを検索するとエラーになって
しまいます。こんな経験された方おられないでしょうか?おれらましたら是非アドバイス下さい。

ちなみに、以下のような感じです
-----------------------------
コンピュータA(Win2003)
コンピュータB(Win2003)

コンピュータA、コンピュータBとも同一ドメインに参加。

コンピュータA上で動いているWebアプリケーション内からコンピュータB上のフォルダに関してListFilesをしています。
-----------------------------

ちなみに、最近までは問題なく動いていました。が、先日工場の引越しがあり、ネットワーク環境が変わりました(コンピュータAとコンピュータBの関係には変更無いです)。前の工場よりネットワークが遅くなった感じがします。その辺が原因なんでしょうか?

よろしくお願いします。

A 回答 (2件)

エラーというのが、


a.プログラムでエラーの状況を検出しているのか、
b.プログラムの実行を継続できなくて止まってしまっているのか
がわからなかったので、「メッセージ」と曖昧な書き方にしてしまいました。
a.ならプログラムの挙動または、もし表示やログ出力がされるならその内容を。
b.ならスタックトレースがコンソールに表示されると思うのでその内容を。
と思っていました。

さて、提示されたソースによると、a.のケースに当たりますよね。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
によると、File.listFiles()は
「この抽象パス名がディレクトリを示さない場合、または入出力エラーが発生した場合は null」を返す
とありますので、やはり原因が完全には特定されません。

原因の候補としては、
1)コンピュータBのホスト名がかわった
2)検索対象ファイルの名前または置き場所がかわった
3)コンピュータAからコンピュータBのファイルを参照する際にパスワードが必要になった
4)コンピュータAからコンピュータBのファイルを参照する権限がない
などが考えられます。
この場合は普通にエクスプローラで、コンピュータAからコンピュータBのファイルを見ることができるかどうかを確認してみるといいと思います。

また、単純にstrRootPathの内容が間違っているという事も考えられます。

以上です。
    • good
    • 0

ちょっと情報が少ない感じもしますが、


「ネットワークの遅延によるタイムアウト」が怪しいです。

エラーになる箇所と、そのメッセージを提示されると手がかりになると思います。

この回答への補足

御礼が遅くなりすいません。ご回答ありがとうございます。

私はJavaもネットワーク関連も詳しくないのですが、ちょっとソフトが出来ると言うので、該当プログラムの引継ぎをされてしまいました。(泣)

で、ソースですが以下のような感じです

---------------
public static String existMfgNo(String mfgNo)
throws Exception {
File dir;
File users[];
File mfgNos[];
String strRootPath;

if(ImsUtils.getEqpType(mfgNo).equals(ImsConfig.TYPE_FC)) {
strRootPath = ImsConfig.getInstPath(ImsConfig.TYPE_FC);
}
else {
strRootPath = ImsConfig.getInstPath(ImsConfig.TYPE_WS);
}

dir = new File(strRootPath);
users = dir.listFiles();

if(users == null) {
throw new Exception(strRootPath + ":フォルダ検索失敗");
}

~後略~
}

---------------

とまぁ、こんな感じなのですが、if(users == null)の部分でエラー処理に入ってしまいます。

ちなみに、strRootPathには別ファイルサーバーのフォルダ名が入るようになっています。(\\computer1\folder\dir 見たいな感じです)


ちなみに、回答に記されておりますメッセージと言うのは何のメッセージのことでしょうか?

よろしくお願いします。

以上

補足日時:2007/08/10 11:03
    • good
    • 0

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