問題描述
使用jsp瀏覽文件和文件夾 (browsing files and folders using jsp)
i want to display directory and its files in link format that is if i click the directory it should display the files in that directory.i tried to get the directory as a link but dont know how to get the files
my code for getting directory as a link.
<%
try{
File dirName = new File("/home/adapco/Desktop/Startest/");
if (dirName.exists()&& dirName.isDirectory())
{
//out.print("path: " + dirName.getAbsolutePath() + "<br>");
String[] allFiles = dirName.list();
for (int i=0; i < allFiles.length; i++)
{
out.println(allFiles[i] + "<br>");
%>
<a href="Startest/<%=allFiles[i]%>"><%=allFiles[i]%></a>
}
}
}
catch (IOException ex){
out.println("Exception Occured");
}
%>
i tried to get the file in the same manner but it isnt working
File folder = new File("/home/adapco/Desktop/Startest/");
File[] listOfFiles = folder.listFiles();
i want to know how to get both directory and files and link them up in order to browse.
參考解法
方法 1:
Result of folder.listFiles() is array of files and directories. It is all there. You can use file.isDirectory() or file.isFile() to detect is it directory or file.
You will have servlet/controller that is mapped to "/filesystem/*", that you can extract path that is after filesystem/folder1/folder2 -> folder1/folder2. Add to this path you filesystem, create file and return content of folder. So link to folder2 will be:
<a href="<c:url value='/filesystem/folder1/folder2'/>">folder2</a>
To encode not supported in url symbols use URLEncoder() for folders names.