我想從我的JSP項目的根目錄中獲取文件夾的列表,然後將它們顯示給用戶的表中,並鏈接到子文件夾和文件夾的大小。下面的代碼是獲取WebContent文件夾內的目錄列表。爲什麼在訪問Tomcat上的文件時使用空指針(使用HttpServlet)?
String absolutePath = this.getServletContext().getRealPath("/") + relativePath;
String fileList = "<tr><th>File Name</th><th>Size [B]</th><th>Last Updated</th></tr>";
File folder = new File(absolutePath);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isDirectory()) {
Path file = listOfFiles[i].toPath();
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
String time = attr.lastAccessTime().toString();
fileList += "<tr><td><img width='15px' alt='**' src='assets\\images\\folder.png'/> "
+ "<button onclick='navigate(this);'>" + listOfFiles[i].getName() + "</button></td><td>" + attr.size() + "</td><td>"
+ time.replace("T", " ").substring(0, time.indexOf("."))
+ "</td></tr>";
}
}
當我在本地運行項目時,沒有問題。但是,在服務器上部署我的.war文件後,運行的時候我在行得到一個500錯誤(空指針異常):
for (int i = 0; i < listOfFiles.length; i++)
告訴我該文件夾陣列尚未與子文件夾初始化。
我假設我沒有對服務器上的這些文件夾的訪問權限,就像我在本地運行時一樣。
任何想法如何訪問這些文件夾? P.S.服務器在Unix上運行。
我會記錄「absoultepath」的值,並看到服務器文件系統具有確切路徑的文件夾。你知道問題是什麼,所以調試和看看。 – kosa