2017-06-01 65 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')?方法内部的硬编码路径并不是一个好的做法。 –