<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import='java.sql.*,java.io.*,java.text.*,java.lang.*'%>
<%!
 static String[] sortByFileName(String[] soreSource)//按文件名排序(文件夹在最前面,文件名在后面,相同的按英文字母顺序排列)
 {
   String sortTemp = null ; //交换的临时变量
   for( int  i = 0 ; i < soreSource.length ; ++i )//用bubblesort(冒泡法)排序。
 {
   for(int j = 0; j < soreSource.length-i-1 ; ++j )
 {
   if(soreSource[j].compareTo(soreSource[j+1]) > 0)
             {
   sortTemp = soreSource[j];
   soreSource[j] = soreSource[j+1];
   soreSource[j+1] = sortTemp;
 }
 }
 }
 return soreSource;
 }
%>
<%!
  String lastSpecialString(String ttstr ,char specString)
  {
  int specLength = 0;
  for(int i = 0 ; i < ttstr.length() ; ++ i)
  {
  if(ttstr.charAt(i)==specString)
   specLength = i; 
  }
  return ttstr.substring(specLength+1);
  }%>
<%!
  //函数用于显示文件的图标,传入文件名称,根据后缀名显示图标
  String showFileIcon(String fileName)
  {
  String iconName = null;
  if(fileName!=null)
  {
    File tempFile = new File(fileName);
if(!tempFile.isDirectory())
  {
String fileExtName = lastSpecialString(fileName,'.').toUpperCase();
        iconName = "nofile.jpg";
if(fileExtName.equals("TXT"))
iconName = "TXT.JPG";
if(fileExtName.equals("JPG"))
iconName = "JPG.JPG";
if(fileExtName.equals("GIF"))
iconName = "GIF.JPG";
if(fileExtName.equals("BMP"))
iconName = "BMP.JPG";
if(fileExtName.equals("SYS"))
iconName = "SYS.JPG";
if(fileExtName.equals("EXE"))
iconName = "EXE.JPG";
if(fileExtName.equals("DOC"))
iconName = "DOC.JPG";
if(fileExtName.equals("JSP"))
iconName = "JSP.JPG";
if(fileExtName.equals("INT"))
iconName = "INT.JPG";
if(fileExtName.equals("WAV"))
iconName = "WAV.JPG";
if(fileExtName.equals("MP3"))
iconName = "MP3.JPG";
if(fileExtName.equals("AVI"))
iconName = "AVI.JPG";
if(fileExtName.equals("HTM"))
iconName = "HTM.JPG";
if(fileExtName.equals("HTML"))
iconName = "HTM.JPG";
if(fileExtName.equals("ZIP"))
iconName = "ZIP.JPG";
if(fileExtName.equals("RAR"))
iconName = "RAR.JPG";
if(fileExtName.equals("HLP"))
iconName = "HLP.JPG";
if(fileExtName.equals("CHM"))
iconName = "CHM.JPG";
if(fileExtName.equals("PDF"))
iconName = "PDF.JPG";
if(fileExtName.equals("DLL"))
iconName = "DLL.JPG";
if(fileExtName.equals("SWF"))
iconName = "SWF.JPG";
    if(fileExtName.equals("LOG"))
iconName = "TXT.JPG";
if(fileExtName.equals("COM"))
iconName = "BAT.JPG";
if(fileExtName.equals("INI"))
iconName = "INI.JPG";
if(fileExtName.equals("BAT"))
iconName = "BAT.JPG";
  }
  }
  return iconName;
  }
%>
<%!
 String showTime()//显示当前的详细日期时间
 {
   java.util.Date currDate = new java.util.Date();
   String currentTime = "今天是";
   currentTime = currentTime 
           + (1900 + currDate.getYear()) + "年"
           + (1 + currDate.getMonth()) + "月"
   + (currDate.getDate()) + "日"
   + " 星期 " + (currDate.getDay());
   return currentTime;
 }
%>
<%!
  String fileStdlength(long fileLenByByte)//正确显示文件的长度
  {
  String fileLenByText = String.valueOf(fileLenByByte) + "字节";
  if(fileLenByByte>1024)
   fileLenByText = fileLenByByte/1024 + "KB";
  if(fileLenByByte>(1024*1024))
           fileLenByText = fileLenByByte/(1024*1024) + "MB";
      return fileLenByText; 
  } 
%>

解决方案 »

  1.   

    <%!
      String fileStdAttribute(String ttfile)//正确显示文件的属性
      {
      String fileAttribute = null;
          if(ttfile!=null)
      {
    File ttFile = new File(ttfile);
        if(!ttFile.isDirectory())
      {
    String fileExtName = lastSpecialString(ttfile,'.').toUpperCase();
    fileAttribute = "未知文件";
    if(fileExtName.equals("TXT"))
    fileAttribute = "文本文件";
    if(fileExtName.equals("JPG"))
    fileAttribute = "JPG格式的图像文件";
    if(fileExtName.equals("GIF"))
    fileAttribute = "GIF格式的图像文件";
    if(fileExtName.equals("BMP"))
    fileAttribute = "BMP格式的图像文件";
    if(fileExtName.equals("SYS"))
    fileAttribute = "系统文件";
    if(fileExtName.equals("EXE"))
    fileAttribute = "应用程序";
    if(fileExtName.equals("DOC"))
    fileAttribute = "word文档文件";
    if(fileExtName.equals("JSP"))
    fileAttribute = "JSP源文件";
    if(fileExtName.equals("INT"))
    fileAttribute = "信息配置文件";
    if(fileExtName.equals("WAV"))
    fileAttribute = "声音文件";
    if(fileExtName.equals("MP3"))
    fileAttribute = "MP3文件";
    if(fileExtName.equals("AVI"))
    fileAttribute = "视频文件";
    if(fileExtName.equals("HTM"))
    fileAttribute = "网页文件";
    if(fileExtName.equals("HTML"))
    fileAttribute = "网页文件";
    if(fileExtName.equals("ION"))
    fileAttribute = "ICO图标文件";
    if(fileExtName.equals("DLL"))
    fileAttribute = "动态连接文件";
    if(fileExtName.equals("RAR"))
    fileAttribute = "WINRAR压缩文件";
    if(fileExtName.equals("ZIP"))
    fileAttribute = "WINZIP压缩文件";
    if(fileExtName.equals("PDF"))
    fileAttribute = "PDF文件";
    if(fileExtName.equals("CHM"))
    fileAttribute = "CHM帮助文件";
            if(fileExtName.equals("HLP"))
    fileAttribute = "HLP帮助文件";
       }
      }
                  
      return fileAttribute;
      }
    %>
    <%
       String filePath =(String)request.getParameter("path"); 
       String lastpath = (String)request.getParameter("lastpath");
       String action = (String)request.getParameter("action"); //action为update时表示要进行处理   String[] fileName = null;    //文件名称
       File[] filelist = null;      //文件列表(包括目录与文件)
       String[] isDirectory =null;  //是否为目录
       long[] fileLength = new long[2] ; //文件的长度
       String[] fileModifyTime = null; //文件的修改时间
       int rows = 0; //文件数量
       long fileTotalLength = 0;
       if(action!=null && action.equals("update"))//实际处理部分
       {   //判断路径的合法性,存不存在,是不是没有值,输入的是不是目录
       if(filePath==null || filePath.length()==0)
       {
          out.println("请选择路径");
      return;
       }
       File dir = new File(filePath);
       if(!dir.exists())
       {
          out.println("该目录不存在");
      return;
       }
       if(!dir.isDirectory())
       {
          out.println("你输入的不是目录");
          return;
       }   //获取文件信息
       fileName = dir.list();
       //fileName = sortByFileName(fileName);
       filelist = dir.listFiles();
       rows = filelist==null ? 0 : filelist.length;
       isDirectory = new String[rows]; 
       fileLength = new long[rows];
       fileModifyTime = new String[rows];
       for(int i = 0 ; i < rows ; ++ i)
         { if(filelist[i].isDirectory())
    {
       isDirectory[i] = "Y";
    }
    else
    {
       isDirectory[i] = "N";
    }
    fileLength[i] = filelist[i].length();
    fileTotalLength = fileTotalLength + fileLength[i];
            fileModifyTime[i] = String.valueOf(filelist[i].lastModified()/(1000*24*3600)/365+1970)+"-"; //年份
            fileModifyTime[i] = fileModifyTime[i] +  String.valueOf(filelist[i].lastModified()%(315360))+"-";//月份
      } 
      
       }
    %>
      

  2.   

    <html>
    <head>
    <style>
    <!--
    A { COLOR: Green; TEXT-DECORATION: none; }
    //--></style>
    <title>资源管理器</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script  language="JavaScript">
    function sub()
    {
       document.form1.action.value="update";
       document.form1.submit();
    }
    </script>
    </head>
    <body bgcolor="#99CCFF">
    <form name="form1" method="post" action="filelist.jsp">
    <input  type="hidden" name="action" value="">
      <table width="600" border="1" cellspacing="0" cellpadding="0" bgcolor="#00FFFF">
        <tr bgcolor="#FFCC66" bordercolor="#FFCC66"> 
          <td width="110">工具栏</td>
          <td colspan="6">
            <div align="right"><marquee><a href="#"><%=showTime()%></a></marquee> </div>
          </td>
        </tr>
        <tr bgcolor="#FFFFFF" bordercolor="#FFCC66"> 
          <td width="110">新建目录</td>
          <td width="75">时间日期</td>
          <td width="86">其它操作</td>
          <td width="101">其它操作</td>
          <td width="73">其它操作</td>
          <td colspan="2" width="140">&nbsp;</td>
        </tr>
      </table>
      <table width="600" border="1" cellspacing="0" cellpadding="0">
        <tr bordercolor="#99CCFF"> 
          <td colspan="2">请输入路径: 
            <input type="text" name="path" value="<%=filePath%>">
            选择路径 
            <input type="button" name="listfile" value="List File" onClick="sub()">
          </td>
        </tr>
        <tr bgcolor="#FFFFFF"> 
          <td width="145">文件数目:<%=rows%>个</td>
          <td width="455">文件大小:<%=fileStdlength(fileTotalLength)%></td>
        </tr>
      </table>
      <table width="600" border="1" cellspacing="0" cellpadding="0">
        <tr bgcolor="#FFCC66" bordercolor="#FFCC66"> 
          <td width="135">文件名称</td>
          <td width="124"> 
            <div align="right">文件大小</div>
          </td>
          <td width="202"> 
            <div align="left">&nbsp;文件类型</div>
          </td>
          <td width="202">文件最后修改时间</td>
          <td width="46">&nbsp;</td>
          <td width="46">&nbsp;</td>
          <td width="47">&nbsp;</td>
        </tr>
        <%
       if(lastpath!=null)
        {
    %> 
        <tr bgcolor="#FFFFFF" bordercolor="#FFFFFF"> 
          <td colspan="7"><a href=javascript:window.history.back()>..</a></td>
        </tr>
        <%
      }
    %> <%
     for(int i = 0 ; i <rows ; ++ i)
     {
      if(i%2==0)
      {
    %> 
        <tr bgcolor="#FFFFFF" bordercolor="#FFFFFF"> <%
       }
    else
       {
    %> 
        <tr bgcolor="#FFFFFF" bordercolor="#FFFFFF"> <%
        }
    %> 
          <td nowrap valign="middle"> <%if(isDirectory[i].equals("N")){%> <img src="<%=showFileIcon(fileName[i])%>" width="16" height="16"><%=fileName[i]%> 
            <%}else{%> <img src="dir.JPG" width="16" height="16"><font color="#FF0000"><a href='filelist.jsp?path=<%=filelist[i].toString()+"\\"%>&action=update&lastpath=<%=filePath%>'><%=fileName[i].toUpperCase()%></a></font> 
            <%}%> </td>
          <td align="right"> <%if(isDirectory[i].equals("N")){%> <%=fileStdlength(fileLength[i])%> 
            <%}else{%><font color="#FFFFFF">.</font><%}%> </td>
          <td> 
            <div align="left">&nbsp;<%if(isDirectory[i].equals("N")){%><%=fileStdAttribute(fileName[i])%><%}else{%>文件夹<%}%></div>
          </td>
          <td><%=fileModifyTime[i]%> </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <%
      }
    %> 
      </table>
    </form>
    </body>
    </html>