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 中)可以正常工作。共享文件夹,每个人都有读/写权限。

此外,如果我共享本地文件夹并尝试使用 URL“////localhost//LOCAL_SHARED_FOLDER/xyz.xml”从同一台机器访问,我的代码工作正常。

但我不知道,为什么它对远程机器 ip-address 不起作用,请大家帮我看看为什么它不起作用

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/。有一个 Java API 如何处理 smb/samba 共享。

于 2015-02-25T15:25:21.437 回答