0

我正在开发一个 servlet,我必须将文件 (*.doc) 从其他计算机的共享文件夹复制到我的 servlet webapp 空间,但我不能。问题不是在我的 Apache 服务器上写入,而是我期待从远程文件夹(局域网中的共享文件夹)复制文件时遇到麻烦。有什么建议或想法吗?

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>");

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

4

2 回答 2

1

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

你最好的办法是让你的操作系统平台创建一个指向网络资源的本地映射(一种虚拟磁盘),并且如果你在 Windows 上,也给它分配一个磁盘号。这是有关该主题的 Microsoft Windows 7 指南

在此处输入图像描述

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

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

(请注意,它/的效果\\与您避免逃避它们一样好)

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

于 2012-12-16T03:34:50.263 回答
0

尝试:

URL url = new URL( "file:///192.168.2.103//CompartidaMatias//tablaEstudios.txt" );
File inFile = new File( url.getFile() );
于 2012-12-14T18:42:34.997 回答