在javaservlet中将文件从共享文件夹复制到本地文件夹

在javaservlet中将文件从共享文件夹复制到本地文件夹,java,servlets,copying,shared-directory,Java,Servlets,Copying,Shared Directory,我正在开发一个servlet,我必须将一个文件(*.doc)从另一台计算机的共享文件夹复制到我的servlet webapp空间,但我不能。问题不是在我的Apache服务器上写入,而是从远程文件夹(LAN中的共享文件夹)复制文件时遇到问题。有什么建议或想法吗 File inFile = new File( "\\\\192.168.2.103\\CompartidaMatias\\tablaEstudios.txt"); out.println("<p> Absolu

我正在开发一个servlet,我必须将一个文件(*.doc)从另一台计算机的共享文件夹复制到我的servlet webapp空间,但我不能。问题不是在我的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>");
File infle=新文件(\\\\192.168.2.103\\CompartidaMatias\\tablestudios.txt);
out.println(“绝对路径-->”+infle.getAbsolutePath()+”

”; out.println(“Path-->”+infle.getPath()+”

”; out.println(“Nombre-->”+infle.getName()+”

”; out.println(“WEBAPP\u ROOT-->”+WEBAPP\u ROOT+”

”; File outFile=新文件(WEBAPP_ROOT+“mydoc3a.txt”); 如果(infle.exists()) out.println(“找到文件”

”; 其他的 out.println(“未找到文件”

”;
我始终无法找到文件:( 谢谢你们的时间,朋友们!!我希望能解决这个问题,但我已经花掉了我所有的想法。再次感谢!!

试试:

URL url = new URL( "file:///192.168.2.103//CompartidaMatias//tablaEstudios.txt" );
File inFile = new File( url.getFile() );

这不是
java.io.File
的工作方式。它只在本地磁盘文件系统上工作,不在网络资源上工作

最好的办法是让操作系统平台创建指向网络资源的本地映射(类似于虚拟磁盘),并在Windows上为其分配一个磁盘号。下面是一个:

您只需将
\\192.168.2.103
映射到例如
Z:\
。完成此操作后,您应该能够按如下方式定位文件:

new File("Z:/CompartidaMatias/tablaEstudios.txt");
(请注意,
/
的效果与
\\
一样好,可以省去您逃避它们的麻烦)


请注意,此问题与servlet完全无关。它只是一个基本的Java问题。在使用
main()
方法的普通Java应用程序中执行此操作时,您会遇到完全相同的问题(顺便说一句,它允许比servlet更快更简单的测试)。请记住这一点,以备将来提问。

非常感谢!!我会尝试!!:):p但不起作用:(我走错了路:(记得我是从运行在Apache中的servlet上尝试这么做的,可能我无法访问windows文件系统,或者我不知道。今天对mi来说是一个悲伤的星期五:(我只是开玩笑!!:p不是悲伤的星期五!!:)非常感谢!!我正在2台windows pc上运行它。进入“开始”>“运行”并键入url,然后按enter键。文件是否打开?如果打开,则可能需要启动Apache(Tomcat?)具有访问CompatidAmatias共享的用户帐户的服务。该用户还需要访问NTFS文件权限。如果不是,则文件可能不存在或共享可能不存在。如果您使用的是同一用户,则这不是权限问题。与下面的答案相反,URI完全有效,并且自1.4以来一直存在,请参阅E