本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法。分享给大家供大家参考,具体如下:
(一)获取当前目录下的文件和目录
知识点
1 file对象的应用
2 listFiles()方法
3 isDirectory()方法,isFile()方法 判断是否为目录或是文件
4转换字符串方法toString
(1)创建一个file对象dir,
然后用listFiles()方法返回当前目录下所有文件
String path=request.getRealPath(\"/\"); File dir=new File(path); File file[]=dir.listFiles();
(2)循环判断所返回的是否为目录,并显示出来:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isDirectory())//
out.print(\"<br>\"+file[i].toString());
}
%>
(3)循环判断所返回的是否为目录,并显示出来:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isFile())
out.print(\"<br>\"+file[i].toString());
}
%>
程序:
<%@ page contentType=\"text/html;charset=GB2312\"%>
<%@ page import=\"java.io.*\"%>
<html>
<title></title>
<body>
<%
String path=request.getRealPath(\"/\");
File dir=new File(path);
File file[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件
%>
当前<%=path%><br>
目录有:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isDirectory())
out.print(\"<br>\"+file[i].toString());
}
%>
<p>文件有:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isFile())
out.print(\"<br>\"+file[i].toString());
}
%>
</body>
</html>
(二)获取windows盘符
<%@ page contentType=\"text/html;charset=GB2312\"%>
<%@ page import=\"java.io.*\"%>
<html>
<body>
<%
File[] roots=File.listRoots();
for(int i=0;i<roots.length;i++)
{
out.print(\"<br>\"+roots[i].getPath());
}
%>
</body>
</html>
(三)将两个程序合并
<%@ page contentType=\"text/html;charset=GB2312\"%>
<%@ page import=\"java.io.*,java.util.*,java.net.*\" %>
<%!
private final static int languageNo=0; //语言版本,0 : 中文; 1:英文
String[] strDrivers = {\"驱动器\",\"Drivers\"};
String[] strCurrentFolder= {\"当前目录\",\"Current Folder\"};
%>
<html>
<body>
<%
String path=request.getRealPath(\"/\");
File dir=new File(path);
File file[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件
StringBuffer sb=new StringBuffer(strDrivers[languageNo] + \" : \");
File roots[]=File.listRoots();
for(int i=0;i<roots.length;i++)
{
sb.append(\" <a href=/\"javascript:doForm(\'\',\'\"+roots[i]+\"//\',\'\',\'\',\'1\',\'\');/\">\");
sb.append(roots[i]+\"</a> \");
}
//out.println(sb);
%>
<%
//out.print(\"<table border=\'1\' width=\'100%\' bgcolor=\'#FFFFFF\' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF><tr><td>\"+strCurrentFolder[languageNo]+\":<br><b>\"+path+\"</td><td>\"+sb+\"</td></tr></table>\");
%>
<table border=\'1\' width=\'100%\' bgcolor=\'#FFFFFF\' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF>
<tr>
<td width=\'40%\'><%=strCurrentFolder[languageNo]%>:<br><%=path %></td><td width=\'60%\'><%=strDrivers[languageNo] %>:<%=sb%></td></tr>
</table>
<table border=\'1\' width=\'100%\' bgcolor=\'#FFFFFF\' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF>
<tr>
<td width=\'40%\'>目录有:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isDirectory())
out.print(\"<br>\"+file[i].toString());
}
%>
</td>
<td width=\'60%\'>文件有:
<%
for(int i=0;i<file.length;i++)
{
if(file[i].isFile())
out.print(\"<br>\"+file[i].toString());
}
%>
</td>
</tr>
</table>
</body>
</html>
我们进一步的优化,实现
<%@ page contentType=\"text/html; charset=GBK\" %>
<%@page import=\"java.io.*,java.util.*,java.net.*\" %>
<head>
<style type=\"text/css\">
td,select,input,body{font-size:9pt;}
A { text-decoration: none }
#tablist{
padding: 5px 0;
margin-left: 0;
margin-bottom: 0;
margin-top: 0.1em;
font:9pt;
}
#tablist li{
list-style: none;
display: inline;
margin: 0;
}
#tablist li a{
padding: 3px 0.5em;
margin-left: 3px;
border: 1px solid ;
background: #FFFFFF;
}
#tablist li a:link, #tablist li a:visited{
color: navy;
}
#tablist li a.current{
background: #FFFFFF;
}
#tabcontentcontainer{
width: 100%;
padding: 5px;
border: 1px solid black;
}
.tabcontent{
display:none;
}
</style>
</head>
<%!
private final static int languageNo=1; //语言版本,0 : 中文; 1:英文
String[] strCurrentFolder= {\"当前目录\",\"Current Folder\"};
String[] strDrivers = {\"驱动器\",\"Drivers\"};
String[] strFileName = {\"文件名称\",\"File Name\"};
String[] strFileSize = {\"文件大小\",\"File Size\"};
String[] strLastModified = {\"最后修改\",\"Last Modified\"};
String[] strFileOperation= {\"文件操作\",\"Operations\"};
String[] strFileEdit = {\"修改\",\"Edit\"};
String[] strFileDown = {\"下载\",\"Download\"};
String[] strFileCopy = {\"复制\",\"Move\"};
String[] strFileDel = {\"删除\",\"Delete\"};
String getDrivers()
{
StringBuffer sb=new StringBuffer(\": \");
File roots[]=File.listRoots();
for(int i=0;i<roots.length;i++)
{
sb.append(\"<a href=\'?path=\"+roots[i]+\"\'>\");
sb.append(roots[i]+\"</a> \");
}
return sb.toString();
}
String formatPath(String p)
{
StringBuffer sb=new StringBuffer();
for (int i = 0; i < p.length(); i++)
{
if(p.charAt(i)==\'//\')
{
sb.append(\"////\");
}
else
{
sb.append(p.charAt(i));
}
}
return sb.toString();
}
public static String toChinese(String str)
{
try{
if(str==null)
{
return \"\";
}else
{
str=new String(str.getBytes(\"ISO8859_1\"),\"GBK\");
return str;
}
}catch(Exception e)
{
return \"\";
}
}
%>
<%
request.setCharacterEncoding(\"gb2312\");
String strDir =toChinese( request.getParameter(\"path\"));
if(strDir==null||strDir.length()<1)
{
strDir = request.getRealPath(\"/\");
}
StringBuffer sb=new StringBuffer(\"\");
StringBuffer sbFile=new StringBuffer(\"\");
try
{
File objFile = new File(strDir);
File list[] = objFile.listFiles();
if(objFile.getAbsolutePath().length()>3)
{
sb.append(\"<tr><td > </td><td><a href=\'?path=\"+formatPath(objFile.getParentFile
().getAbsolutePath())+\"\'>\");
sb.append(\"To ParentFile</a><br>- - - - </td></tr>/r/n\");
}
for(int i=0;i<list.length;i++)
{
if(list[i].isDirectory())
{
sb.append(\"<tr><td> </td><td>\");
sb.append(\"<a href=\'?path=\"+formatPath(list[i].getAbsolutePath())+\"\'>\"+list[i].getName()+\"</a>\");
sb.append(\"</td></tr>\");
}
else
{
String strLen=\"\";
String strDT=\"\";
long lFile=0;
lFile=list[i].length();
if(lFile>1000000)
{
lFile=lFile/1000000;
strLen=\"\" + lFile + \" M\";
}
else if(lFile>1000)
{
lFile=lFile/1000;
strLen=\"\" + lFile + \" K\";
}
else
{
strLen=\"\" + lFile + \" Byte\";
}
Date dt=new Date(list[i].lastModified());
strDT=dt.toLocaleString();
sbFile.append(\"<tr><td>\");
sbFile.append(\"\"+list[i].getName());
sbFile.append(\"</td><td>\");
sbFile.append(\"\"+strLen);
sbFile.append(\"</td><td>\");
sbFile.append(\"\"+strDT);
sbFile.append(\"</td><td>\");
sbFile.append(\" <a href=>\");
sbFile.append(strFileEdit[languageNo]+\"</a> \");
sbFile.append(\" <a href=>\");
sbFile.append(strFileDown[languageNo]+\"</a> \");
sbFile.append(\" <a href=>\");
sbFile.append(strFileCopy[languageNo]+\"</a> \");
sbFile.append(\" <a href=>\");
sbFile.append(strFileDel[languageNo]+\"</a> \");
sbFile.append(\"</td></tr>/r/n\");
}
}
}
catch(Exception e)
{
out.println(\"<font color=red>error: \"+e.toString()+\"</font>\");
}
%>
<table border=\'1\' width=\'100%\' bgcolor=\'#FFFFFF\' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF>
<tr>
<td width=\'20%\'><%=strCurrentFolder[languageNo]%>:<br><%=strDir %></td><td width=\'70%\'><%=strDrivers[languageNo] %><%=getDrivers()%>
</td>
</tr>
</table>
<table border=\'1\' width=\'100%\' bgcolor=\'#FFFFFF\' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF>
<tr>
<td width=\'20%\'valign=\"top\">
<table >
<tr><td><%=sb%></td>
</tr>
</table>
</td>
<td width=\'70%\'align=\"center\" valign=\"top\">
<table width=\"100%\"border=\"1\" cellspacing=\"1\" cellpadding=\"4\" bordercolorlight=\"#000000\" bordercolordark=\"#FFFFFF\">
<tr>
<td width=\"26%\" align=\"center\"><%=strFileName[languageNo] %></td>
<td width=\"19%\" align=\"center\"><%=strFileSize[languageNo] %></td>
<td width=\"29%\" align=\"center\"><%=strLastModified[languageNo] %></td>
<td width=\"26%\" align=\"center\"><%=strFileOperation[languageNo] %></td></tr>
<tr><td width=\"25%\" align=\"center\"><%=sbFile %></td></tr>
</table>
</td>
</tr>
</table>
希望本文所述对大家jsp程序设计有所帮助。
本文地址:https://www.stayed.cn/item/7254
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我