首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对我的服务器中的文件使用File API方法

对我的服务器中的文件使用File API方法
EN

Stack Overflow用户
提问于 2011-05-11 16:34:00
回答 1查看 183关注 0票数 1

我已经创建了一个小应用程序,它可以浏览我的文件系统来创建文件系统并将其显示为树(JTree)。现在,我想对服务器上的文件执行相同的操作。我有一台Apache Tomcat服务器。我想要做的是:

代码语言:javascript
复制
File dir = new File(new URI("file://localhost:8084/myapp/Dir"));

  File[] files = dir.listFiles();

    for (File f : files) {
        System.out.println(f.getAbsolutePath());

这只是一个示例,但我想使用java File API。

当我把下面的代码放到servlet中时,我得到了这个错误:

11 mai 2011 10:02:15 org.apache.catalina.core.StandardWrapperValve invoke "Servlet.service()" pour la servlet tests a généré une exception java.lang.IllegalArgumentException: URI has an authority component at java.io.File.<init>(File.java:385)

我不知道这是什么意思。

我也尝试过File dir = new File("Dir") ;File dir = new File("web/Dir"),甚至还有File dir = new File(new URI(http://localhost:8084/myapp/Dir);

但是没有找到Dir。我不明白,我快疯了(hum..sorry)。

当我在web浏览器上输入http://localhost:8084/myapp/Dir时,目录的内容就会显示出来,而目录确实在http://localhost:8084/myapp/

我真的真的需要一些支持。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-11 16:59:45

假设您的webapp被部署为一个未打包的war,那么您可以在ServletContext对象上使用getRealPath()来获取给定webapp路径的实际文件系统路径。

所以从你的servlet内部:

代码语言:javascript
复制
File dir = new File(getServletContext().getRealPath("/Dir"));

参见javadoc

请注意,这不是一个好的实践,并且不会在任何应用服务器上工作,因为在运行它之前没有将它的WAR解压到文件系统上(例如Google App Engine)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5961399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档