Java 使用Apache FileUtils将文件从共享源文件夹复制到本地目标文件夹失败
我正在尝试使用以下代码复制远程计算机共享文件夹中的文件Java 使用Apache FileUtils将文件从共享源文件夹复制到本地目标文件夹失败,java,apache,fileutils,Java,Apache,Fileutils,我正在尝试使用以下代码复制远程计算机共享文件夹中的文件 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 =
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\u文件夹”,使用RUN(在Windows中)可以正常工作。每个人都具有读/写权限的共享文件夹
另外,如果我共享本地文件夹并尝试使用URL///localhost//local_SHARED_folder/xyz.xml从同一台机器访问,我的代码也可以正常工作
但我不知道,为什么它不适用于远程机器ip地址,请大家帮助我为什么它不适用编辑:
省略“file://”部分。如果将文件寻址为paramUrl=//10.0.0.3/SHARED_FOLDER/xyz.xml
,则复制操作应该可以工作
旧的:
如果将\\\10.0.0.3\SHARED\u文件夹
装入本地驱动器(例如X:),则可以传递参数
paramUrl=X:\xyz.xml
您可以复制该文件,因为它是本地文件
如果无法将Windows中的远程驱动器作为本地驱动器安装,请查看。有一个Java API如何处理smb/samba共享。我还尝试将共享文件夹映射为本地驱动器。在这种情况下,我也得到了同样的例外。但同样的代码也适用于实际的本地文件夹。我编写的这段代码适用于本地文件夹和共享文件夹。还有一件事是,url.getFile()将把url更改为“\\10.0.0.3\Shared\u folder\xyz.xml”,并删除flie://part,正如您在异常中看到的那样。上面的代码能够将一个文件从本地文件夹移动到另一个本地文件夹,但我很惊讶为什么它不能处理映射驱动器中的文件夹。是的,在这种情况下,跳过
新URL(paramUrl)
部分,直接使用新文件(paramUrl)
。e、 g.新文件(“//10.0.0.3/SHARED_FOLDER/xyz.xml”)
不,即使对于本地系统,它也不起作用,我以前已经测试过。当时我正在使用新文件(“//Loca IP Address/LOCAL\u SHARED\u FOLDER/xyz.xml”)。还有一件事,为什么映射驱动器和本地驱动器的行为不同。在我的机器上工作。顺便问一下:你在linux机器上运行代码吗?