2010-07-14 37 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

相關問題