本文实例讲述了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程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!