2017-06-01 67 views
-1

我需要將網址文件(例如http://page.com/list.html)保存到我的「網絡/列表」目錄以供其他互聯網用戶訪問(我使用Netbeans並創建了build,dist,nbproject, src,web和測試目錄)。Java將文件從網址保存到網頁目錄

這是我的代碼(我使用org.apache.commons.io) - 我在普通的java類中使用它,所以我無法使用request.getRealPath(),它無論如何都被depricated。

try { 
     URL dl = new URL("http://page.com/list.html"); 
     File fl = new File("dont/know/what/directory/here/lists/2017-06-01-list.html"); 

     FileUtils.copyURLToFile(dl, fl, 600000, 600000); 
    } 
    catch (Exception ex) { 
     System.out.println("nok"); 
    } 

任何人都可以幫我嗎?非常感謝

+0

這種失敗的方式是什麼?有錯誤嗎?意外的結果? – David

+0

有什麼問題? – aarexer

+0

我不知道在哪個常量有「web目錄」的路徑。它在getServletContext()。getRealPath()中,但我不能在簡單的java類中使用它。 –

回答

1

您可以使用user.dir屬性獲取當前目錄並將目標目錄的路徑追加到File.separator。這是documentation這樣說:

「user.dir來」:用戶工作目錄

另一種選擇是使用該使用的ServletContextgetRealPath()方法(javadoc的here),並建立相對路徑,例如:

String scPath = getServletContext().getRealPath(); 
String userDir = System.getProperty("user.dir"); 
+0

getServletContext()。getRealPath()正在工作,如果我把代碼放到.jsp文件中。但我需要在普通的Java類中使用它。 propeties user.dir和user.home不會導致我的項目web目錄,而是導致另一張光盤上的apache安裝:( –

+0

是的,'user.dir'將返回您的應用程序部署的目錄。對於'realPath',你是否可以不通過它作爲該類方法的參數(可能通過'request attribute')?方法內部的硬編碼路徑並不是一個好的做法。 –