代码之家  ›  专栏  ›  技术社区  ›  Adam

如何在JBoss应用程序中访问服务器上的本地文件?

  •  2
  • Adam  · 技术社区  · 14 年前

    我希望访问JBoss应用程序中本地目录中的所有文件。如果需要的话,我可以把目录放在战争中的任何地方,包括WEB-INF。然后我想按顺序访问目录中的每个文件。在普通应用程序中,如果目录位于运行位置,我可以执行以下操作:

    File f = new File("myDir");
    if(f.isDirectory && f.list().length != 0)
    {
        for(String fileName : f.list())
        {
            //do Read-Only stuff with fileName
        }
    }
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   skaffman    14 年前

    首先要注意的是:只有当您有一场爆发式的战争,或者servlet容器可能为您爆发了战争时,您才能让它工作。

    ServletContext.getRealPath() 作为你的出发点。您需要知道webapp根目录中至少一个文件的名称,然后从那里开始:

    String knownFilePath = servletContext.getRealPath("knownFile");
    File webAppRootDir = new File(knownFilePath).getParentFile();
    
    // and then as per the question
    File f = webAppRootDir ;
    if(f.isDirectory && f.list().length != 0)
    {
        for(String fileName : f.list())
        {
            //do Read-Only stuff with fileName
        }
    }
    

    掌握 ServletContext