0

次のコードを使用して、リモート マシンの共有フォルダーにあるファイルをコピーしようとしています。

myMethod (String paramUrl) {    //URL of the folder shared on Remote machine
    logger.info("paramUrl="+paramUrl);
    URL url = new URL(paramUrl);
    logger.info("Source file address="+url.getFile());
    File inFile = new File(url.getFile());                      
    String destFileName = "D://LOCAL_FOLDER+"//"+xyz.xml;
    logger.info("destFileName="+destFileName);                      
    File destFile = new File(destFileName);                     
    FileUtils.copyFile(inFile, destFile);
}

::::出力は:::::::

paramUrl=file:////10.0.0.3//SHARED_FOLDER//xyz.xml
Source file address=////10.0.0.3//SHARED_FOLDER//xyz.xml
destFileName=D:/LOCAL_FOLDER//xyz.xml
java.io.FileNotFoundException: Source '\\10.0.0.3\SHARED_FOLDER\xyz.xml' does not exist
    at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:637)

ノート:

URL "\\10.0.0.3\SHARED_FOLDER" にアクセスしようとすると、RUN (Windows の場合) を使用して正常に動作します。全員が読み書きできる共有フォルダ。

また、local-folder を共有し、URL "////localhost//LOCAL_SHARED_FOLDER/xyz.xml" を使用して同じマシンからアクセスしようとすると、私のコードは正常に動作します。

しかし、リモートマシンのIPアドレスで機能しない理由がわかりません。機能しない理由を教えてください

4

1 に答える 1

0

編集:「file://」の部分を省略します。ファイルを としてアドレス指定するparamUrl=//10.0.0.3/SHARED_FOLDER/xyz.xmlと、コピー操作が機能するはずです。

年:

\\\10.0.0.3\SHARED_FOLDERローカル ドライブ (例: X:) にマウントする場合は、パラメーターを渡すことができます。

paramUrl=X:\xyz.xml

ローカルファイルとして動作するため、ファイルをコピーできます。

Windows でリモート ドライブをローカル ドライブとしてマウントできない場合は、http://jcifs.samba.org/を参照してください。smb/samba 共有を処理する Java API があります。

于 2015-02-25T15:25:21.437 に答える