实很简单 也有很多方法 我使用的是一个SERVLET+一个JSP实现的 主要应用FILE类 SERVLET的代码片:
DisplayFile.java
//*********************************
File parentDirectory = null;//当前目录
ArrayList [] file = null;//存放当前目录中所有的文件
ArrayList [] directory = null;//存放当前目录中所有的目录
String [] temp = null;//临时数组 存放当前目录中所有的文件和目录的绝对路径加完整名字的字符串
File tempFile = null;
if(request.getParameter("directory")==null)
{
parentDirectory = new File("C://temp");//第一次使用SERVLET为访问对象 使用默认目录
}
else
{
//第二次或者以后访问的时候 使用页面提交的目录为默认目录
parentDirectory = new File(request.getParameter("directory"));//
}
temp = parentDirectory.list();//提取当前目录中所有的文件和目录的绝对路径加完整名字的字符串
for(int i = 0 ; i<list.length() ; i++ ){
//进行判断 是目录的放入directory集合中 文件的放入file集合中
tempFile = new File(temp)
if(tempFile.isDirectory())
directory.add(tempFile);
else
file.add(tempFile);
}
//*********************************
然后在JSP页面中使用那两个集合显示出目录和文件 目录可以使用超级连接 再次调用上面的Servlet
"DisplayFile?directory=<%((File)file.get(i)).getName()%>"
没有环境 一次写成的 难免有问题~~~~
------------------------------------------------------------------------------------------
在JSP中利用session.setAttribute()设置两个String属性,一个currentPath,一个parentPath,
利用currentPath构造一个File, 利用listFiles()列出这个目录中的所有目录,然后
for(n <file.listFiles().length;n++) out.print(" <a href="+files[n].getName()+">"+files[n].getName()+" </a> <br>");
out.print(" <a href="+session.getAttribute("parentPath")+"preview </a> </br>");
当单击这个超链接时
setAttribute("parentPath",(String)getAttribute("currentPath"));
setAttribute("currentPath",被点击的超链接的名字);
当单击的是"preview"链接时
setAttribute("parentPath",(new File(parentPath)).getParent());
setAttribute("currentPath",parentPath); //这两上parent是getAttribute("parentPath")得来的
然后再把这个页面刷新一下或 <jsp:forword page="xxx.jsp"/>.这样只利用一个jsp文件就可以实现所有目录的遍历加回朔.关键是,怎么知道当前单击的是哪一个超链接?
for(n <file.listFiles().length;n++) out.print(" <a href=xx.jsp?f="+files[n].getName()+"> "+files[n].getName()+" </a> <br> ");
<jsp:forword page="xxx.jsp?fileName="+ <%files[n].getName()%>/>
这样试下看可以不?