如何获取类的静态块内的文件夹的真实路径

时间:2012-02-27 13:32:20

标签: java

我有一个Web应用程序,我需要获取一个文件夹的绝对路径(在我的情况下,WEB-INF)在一个不是servlet的类的静态块中。当然,我可以从属性文件中获取此值,但我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ServletContext ServletContext.getRealPath的getRealPath()方法找出文件系统中的实际文件夹,如

String realPathOfImgFolder=req.getServletContext().getRealPath("/foldername");

您可能无法获得这样的WEB-INF文件夹名称,因为它不在servlet上下文的公开目录中,您可能需要为此执行此类操作

String rootPath=req.getServletContext().getRealPath("/");
File webInfFolder=new File(rootPath,"WEB-INF");

[编辑]如果您没有request对象,则必须使用ServletContextListener并使用其contextInitialized(ServletContextEvent sce)方法获取ServletContext并存储进入应用程序范围的路径,以便稍后检索它。