<%@ 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;
}
%>
<%@ 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;
}
%>
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))+"-";//月份
}
}
%>
<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"> </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"> 文件类型</div>
</td>
<td width="202">文件最后修改时间</td>
<td width="46"> </td>
<td width="46"> </td>
<td width="47"> </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"> <%if(isDirectory[i].equals("N")){%><%=fileStdAttribute(fileName[i])%><%}else{%>文件夹<%}%></div>
</td>
<td><%=fileModifyTime[i]%> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<%
}
%>
</table>
</form>
</body>
</html>