JSP 遍历读取文件夹下所有文件,目录

时间:2021-04-22 13:38:07


方法1:
JSP遍历文件目录
<%--Listfile.jsp--%>
<%@ page import="java.io.File"%>
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<html>   <head><title>遍历文件目录</title></head>
   <body>
   <%!
       public   void travelDirectory(String directory,JspWriter out)
       {
           File dir = new File(directory);
           if(dir.isFile())            //判断是否是文件,如果是文件则返回。
               return;
           File [] files=dir.listFiles();        //列出当前目录下的所有文件和目录
           for(int i=0;i<files.length;i++)
           {
               if(files[i].isDirectory())       //如果是目录,则继续遍历该目录
                   travelDirectory(files[i].getAbsolutePath(),out);
               out.println( files[i].getName());    //输出该目录或者文件的名字
           }
       }   %>     <%
       //将当前web程序目录结构输出到控制台
       String dir=pageContext.getServletContext().getRealPath("/images");
       out.println("--------------------------------");
       travelDirectory(dir,out);
       out.println("--------------------------------");
   %>
   </body>
</html>
方法2:
//********************************* 
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()%>"