将文件从共享文件夹复制到java servlet中的本地文件夹

时间:2012-12-14 18:33:15

标签: 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> 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>");

我总是找不到文件:( 谢谢你的朋友们!我希望它可以解决,但我已经花了我所有的想法。再次感谢!!

2 个答案:

答案 0 :(得分:1)

这不是java.io.File的工作原理。它仅适用于本地磁盘文件系统,不适用于网络资源。

最好的办法是让您的操作系统平台创建一个指向网络资源的本地映射(一种虚拟磁盘),并且,如果您在Windows上,也会为其分配一个磁盘字母。这是一个Microsoft Windows 7 guide on the subject

enter image description here

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

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

(请注意,/\\的效果相同,可以帮助您避免逃避它们。

请注意,此问题与servlet完全无关。这只是一个基本的Java问题。在使用main()方法的普通Java应用程序中执行此操作时,您会遇到完全相同的问题(顺便提一下,这样可以比servlet更快更容易地进行测试)。请记住以后的问题。

答案 1 :(得分:0)

尝试:

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