我想创建一个xml文件并存储在我的Spring Mvc Web应用程序的文件夹中.
我可以用我的应用程序的根目录 request.getContextPath()
但
我如何获得应用程序的相对路径,以便它可以在应用程序文件夹的位置独立地在任何机器上工作?
喜欢 C:/folder/folder/MYAPPLICATIONROOTFOLDER
你想这样做.
首先,您需要获取ServletContext.我不知道这是如何在Spring MVC中完成的,但它在某处.
然后你可以这样做:
ServletContext ctx = getServletContextFromSpringSomehow();
String path = ctx.getRealPath("/folder/filename.txt");
FileWriter fw = new FileWriter(path);
Run Code Online (Sandbox Code Playgroud)
这里的关键是ServletContext.getRealPath.它为您提供了webapp中资源的本地文件系统路径.在这里使用"/"的观察者,因为它是一个URL,而不是文件名.容器将为您提供有效的文件名作为回报.请注意,这仅适用于容器爆炸WAR或部署爆炸WAR的情况.如果WAR未爆炸,您将从容器中获得空值.
另请注意,这将适用于不存在的文件.容器不检查文件的实际存在.但实际上你可以创建任何缺少的中间目录等等.
最后,当然,即使您返回文件路径,也不意味着您实际上可以写入该路径.这是容器范围之外的OS权限问题.
| 归档时间: |
|
| 查看次数: |
14446 次 |
| 最近记录: |