【问题标题】:Go to a specific directory in Java Servlet转到 Java Servlet 中的特定目录
【发布时间】:2011-09-29 12:09:42
【问题描述】:

我在tomcat webapps中有一个名为BankApp的app文件夹,里面有一个temp目录。

我想获取临时文件夹中的所有文件

我试过这个:

File file = new File(path + "/temp/");

File[] list = file.listFiles();

for(int i=0;i<list.length;i++)    
{
    out.println(list[i].getName() + "<br/>");
}

但它不起作用,我的意思是给出空错误

去那个文件夹的正确方法吗?即 BankApp\temp

谢谢!

【问题讨论】:

  • 请将以下代码添加到您的 servlet 并告诉我们结果是什么:out.println("dir=" + new File(".").getAbsolutePath())。然后意识到 path 的值不正确并接受以下答案之一。

标签: java servlets java-io


【解决方案1】:

不是最终答案,来自java.util.File.listFiles() 的 JavaDoc:

表示文件和目录的抽象路径名数组 此抽象路径名表示的目录。该数组将是 如果目录为空,则为空。 如果此摘要返回 null 路径名不表示目录,或者如果发生 I/O 错误。

您确定语句 path + "/temp/" 返回有效(现有)路径吗?

编辑:您必须正确识别您的BankApp 的根路径。您可以通过调用ServletContext.getRealPath("/") 来完成此操作。见我的answer to a previous question

【讨论】:

  • 不,不是。它返回空值。这就是我的问题,我如何去到 BankApp 文件夹中的临时文件夹?
  • @Nitin Kabra:你如何确定path 变量的值?请使用相应的代码 sn-p 更新您的问题。
【解决方案2】:

定义“它不起作用”——会发生什么?

如果您想要临时目录中的文件,为什么要getParentFile 并列出该目录中的文件?

【讨论】:

  • null错误出现在哪里?您是否验证了您创建的路径是否正确?
  • 进入该文件夹是否正确?即 BankApp\temp .
  • 那么您尝试列出的目录不存在(或者您可能没有访问权限;不确定)。同样,您确定您尝试访问的路径是正确的吗?
  • 它存在,我也可以访问。当我列出 BankApp 文件夹的所有目录时,它也给了我临时目录。但是当我添加 /temp 并尝试访问它时,返回 null。
  • 除了我已经说过的内容之外,没有什么可告诉您的了——正如其他回答者所说,没有太多条件可以让您回复null
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多