0

サーブレットを開発しています。ファイル(* .doc)を他のコンピューターの共有フォルダーからサーブレットのWebアプリケーションスペースにコピーする必要がありますが、コピーできません。問題は私のApacheサーバーに書き込むことではなく、リモートフォルダー(LANの共有フォルダー)からファイルをコピーする際の問題を予期しています。何か提案やアイデアはありますか?

File inFile = new File( "\\\\192.168.2.103\\CompartidaMatias\\tablaEstudios.txt");
        out.println("<p> AbsolutePath --> " + inFile.getAbsolutePath() + "</p>");
        out.println("<p> Path --> " + inFile.getPath() + "</p>");
        out.println("<p> Nombre --> " + inFile.getName() + "</p>");
        out.println("<p> WEBAPP_ROOT --> " + WEBAPP_ROOT + "</p>");



        File outFile = new File(WEBAPP_ROOT + "mydoc3a.txt");

        if (inFile.exists())
            out.println("<p>FILE FOUND</p>");
        else
            out.println("<p>FILE NOT FOUND</p>");

私はいつもファイルが見つかりません:(お時間をいただきありがとうございます!!それが解決されることを願っていますが、私はすべてのアイデアを費やしました。ありがとうございました!!

4

2 に答える 2

1

これはどのようにjava.io.File機能するかではありません。ネットワーク リソースではなく、ローカル ディスク ファイル システムでのみ機能します。

最善の策は、オペレーティング システム プラットフォームでネットワーク リソースを指すローカル マッピング (一種の仮想ディスク) を作成し、Windows を使用している場合はそれにディスク文字も割り当てることです。これは、件名に関するMicrosoft Windows 7 ガイドです。

ここに画像の説明を入力

\\192.168.2.103たとえば、にマップするだけZ:\です。それが完了すると、次のようにファイルを見つけることができるはずです。

new File("Z:/CompartidaMatias/tablaEstudios.txt");

(それらをエスケープするのと/同じくらいうまく機能し\\、あなたを救うことに注意してください)

この問題は、サーブレットとはまったく関係がないことに注意してください。これは単なる Java の基本的な問題です。メソッドを使用してプレーンな Java アプリケーションでこれを実行すると、まったく同じ問題が発生しますmain()(ちなみに、サーブレットよりもはるかに高速で簡単なテストが可能です)。今後の質問のためにこれを覚えておいてください。

于 2012-12-16T03:34:50.263 に答える
0

試す:

URL url = new URL( "file:///192.168.2.103//CompartidaMatias//tablaEstudios.txt" );
File inFile = new File( url.getFile() );
于 2012-12-14T18:42:34.997 に答える