2012-12-14 228 views
0

在開發servlet時,我必須將文件(* .doc)從其他計算機上的共享文件夾複製到我的servlet webapp空間,但我無法。麻煩並不是寫在我的Apache服務器上,而是,我期待麻煩從遠程文件夾(LAN中的共享文件夾)複製文件。任何建議或想法?將文件從共享文件夾複製到javaservlet中的本地文件夾

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

我總是得到未找到文件:( 感謝您的時間哥們!我希望它可以解決,但我已經花了我所有的想法再次感謝!!

回答

0

嘗試:

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

非常感謝!我會盡力!! :) P – Carol

+0

但不工作:(我得到錯誤的路徑:(記得我試圖從一個運行在Apache中的servlet做到這一點,也許我不能訪問Windows文件系統或我不知道。今天是一個悲傷的星期五對於mi :(我只是在開玩笑!!:P是不是不傷心星期五!! :) 非常感謝!! – Carol

+0

我從2個Windows PC運行它。 – Carol

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問題。在一個普通的Java應用程序中使用main()方法執行此操作時,您會遇到完全相同的問題(該方法允許比servlet更快更輕鬆地進行測試)。請記住您的未來問題。

相關問題