2010-07-14 36 views
2

我正在寻找访问JBoss应用程序中本地目录中的所有文件。如果需要,我可以在我的战争中的任何地方放置目录,包括WEB-INF。然后我想按顺序访问目录中的每个文件。在一个正常的应用程序,如果该目录是在运行位置,我可以这样做:如何在JBoss应用程序的服务器上访问本地文件?

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

我在寻找一个最佳实践的解决方案,所以如果我要对这个错误的话,请点我访问未知资源的正确方法。

回答

2

首先要注意的是:如果您有爆炸的WAR,或者可能是servlet容器为您分解WAR,那么您只能使其工作。

考虑到这个警告,你可以使用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保持留作读者练习。

+0

谢谢skaffman,因为我已经做了更多的研究,看起来像获取文件夹中的所有文件实际上并不实际,我应该通过名称使用InputStreams来获取它(请参阅http://www.coderanch.com /吨/ 89900/JBoss的/读特性文件)。 – Adam 2010-07-14 19:55:11

相关问题