jsp编程获取当前目录下的文件和目录及windows盘符的方法
本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法。分享给大家供大家参考,具体如下:
(一)获取当前目录下的文件和目录
知识点
1file对象的应用
2listFiles()方法
3isDirectory()方法,isFile()方法判断是否为目录或是文件
4转换字符串方法toString
(1)创建一个file对象dir,
然后用listFiles()方法返回当前目录下所有文件
Stringpath=request.getRealPath("/");
Filedir=newFile(path);
Filefile[]=dir.listFiles();
(2)循环判断所返回的是否为目录,并显示出来:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isDirectory())//
out.print("<br>"+file[i].toString());
}
%>
(3)循环判断所返回的是否为目录,并显示出来:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isFile())
out.print("<br>"+file[i].toString());
}
%>
程序:
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="java.io.*"%>
<html>
<title></title>
<body>
<%
Stringpath=request.getRealPath("/");
Filedir=newFile(path);
Filefile[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件
%>
当前<%=path%><br>
目录有:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isDirectory())
out.print("<br>"+file[i].toString());
}
%>
<p>文件有:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isFile())
out.print("<br>"+file[i].toString());
}
%>
</body>
</html>
(二)获取windows盘符
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="java.io.*"%>
<html>
<body>
<%
File[]roots=File.listRoots();
for(inti=0;i<roots.length;i++)
{
out.print("<br>"+roots[i].getPath());
}
%>
</body>
</html>
(三)将两个程序合并
<%@pagecontentType="text/html;charset=GB2312"%>
<%@pageimport="java.io.*,java.util.*,java.net.*"%>
<%!
privatefinalstaticintlanguageNo=0;//语言版本,0:中文;1:英文
String[]strDrivers={"驱动器","Drivers"};
String[]strCurrentFolder={"当前目录","CurrentFolder"};
%>
<html>
<body>
<%
Stringpath=request.getRealPath("/");
Filedir=newFile(path);
Filefile[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件
StringBuffersb=newStringBuffer(strDrivers[languageNo]+":");
Fileroots[]=File.listRoots();
for(inti=0;i<roots.length;i++)
{
sb.append("<ahref=/"javascript:doForm('','"+roots[i]+"//','','','1','');/">");
sb.append(roots[i]+"</a> ");
}
//out.println(sb);
%>
<%
//out.print("<tableborder='1'width='100%'bgcolor='#FFFFFF'cellspacing=0cellpadding=5bordercolorlight=#000000bordercolordark=#FFFFFF><tr><td>"+strCurrentFolder[languageNo]+":<br><b>"+path+"</td><td>"+sb+"</td></tr></table>");
%>
<tableborder='1'width='100%'bgcolor='#FFFFFF'cellspacing=0cellpadding=5bordercolorlight=#000000bordercolordark=#FFFFFF>
<tr>
<tdwidth='40%'><%=strCurrentFolder[languageNo]%>:<br><%=path%></td><tdwidth='60%'><%=strDrivers[languageNo]%>:<%=sb%></td></tr>
</table>
<tableborder='1'width='100%'bgcolor='#FFFFFF'cellspacing=0cellpadding=5bordercolorlight=#000000bordercolordark=#FFFFFF>
<tr>
<tdwidth='40%'>目录有:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isDirectory())
out.print("<br>"+file[i].toString());
}
%>
</td>
<tdwidth='60%'>文件有:
<%
for(inti=0;i<file.length;i++)
{
if(file[i].isFile())
out.print("<br>"+file[i].toString());
}
%>
</td>
</tr>
</table>
</body>
</html>
我们进一步的优化,实现
<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="java.io.*,java.util.*,java.net.*"%>
<head>
<styletype="text/css">
td,select,input,body{font-size:9pt;}
A{text-decoration:none}
#tablist{
padding:5px0;
margin-left:0;
margin-bottom:0;
margin-top:0.1em;
font:9pt;
}
#tablistli{
list-style:none;
display:inline;
margin:0;
}
#tablistlia{
padding:3px0.5em;
margin-left:3px;
border:1pxsolid;
background:#FFFFFF;
}
#tablistlia:link,#tablistlia:visited{
color:navy;
}
#tablistlia.current{
background:#FFFFFF;
}
#tabcontentcontainer{
width:100%;
padding:5px;
border:1pxsolidblack;
}
.tabcontent{
display:none;
}
</style>
</head>
<%!
privatefinalstaticintlanguageNo=1;//语言版本,0:中文;1:英文
String[]strCurrentFolder={"当前目录","CurrentFolder"};
String[]strDrivers={"驱动器","Drivers"};
String[]strFileName={"文件名称","FileName"};
String[]strFileSize={"文件大小","FileSize"};
String[]strLastModified={"最后修改","LastModified"};
String[]strFileOperation={"文件操作","Operations"};
String[]strFileEdit={"修改","Edit"};
String[]strFileDown={"下载","Download"};
String[]strFileCopy={"复制","Move"};
String[]strFileDel={"删除","Delete"};
StringgetDrivers()
{
StringBuffersb=newStringBuffer(":");
Fileroots[]=File.listRoots();
for(inti=0;i<roots.length;i++)
{
sb.append("<ahref='?path="+roots[i]+"'>");
sb.append(roots[i]+"</a> ");
}
returnsb.toString();
}
StringformatPath(Stringp)
{
StringBuffersb=newStringBuffer();
for(inti=0;i<p.length();i++)
{
if(p.charAt(i)=='//')
{
sb.append("////");
}
else
{
sb.append(p.charAt(i));
}
}
returnsb.toString();
}
publicstaticStringtoChinese(Stringstr)
{
try{
if(str==null)
{
return"";
}else
{
str=newString(str.getBytes("ISO8859_1"),"GBK");
returnstr;
}
}catch(Exceptione)
{
return"";
}
}
%>
<%
request.setCharacterEncoding("gb2312");
StringstrDir=toChinese(request.getParameter("path"));
if(strDir==null||strDir.length()<1)
{
strDir=request.getRealPath("/");
}
StringBuffersb=newStringBuffer("");
StringBuffersbFile=newStringBuffer("");
try
{
FileobjFile=newFile(strDir);
Filelist[]=objFile.listFiles();
if(objFile.getAbsolutePath().length()>3)
{
sb.append("<tr><td> </td><td><ahref='?path="+formatPath(objFile.getParentFile
().getAbsolutePath())+"'>");
sb.append("ToParentFile</a><br>----</td></tr>/r/n");
}
for(inti=0;i<list.length;i++)
{
if(list[i].isDirectory())
{
sb.append("<tr><td> </td><td>");
sb.append("<ahref='?path="+formatPath(list[i].getAbsolutePath())+"'>"+list[i].getName()+"</a>");
sb.append("</td></tr>");
}
else
{
StringstrLen="";
StringstrDT="";
longlFile=0;
lFile=list[i].length();
if(lFile>1000000)
{
lFile=lFile/1000000;
strLen=""+lFile+"M";
}
elseif(lFile>1000)
{
lFile=lFile/1000;
strLen=""+lFile+"K";
}
else
{
strLen=""+lFile+"Byte";
}
Datedt=newDate(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("<ahref=>");
sbFile.append(strFileEdit[languageNo]+"</a>");
sbFile.append("<ahref=>");
sbFile.append(strFileDown[languageNo]+"</a>");
sbFile.append("<ahref=>");
sbFile.append(strFileCopy[languageNo]+"</a>");
sbFile.append("<ahref=>");
sbFile.append(strFileDel[languageNo]+"</a>");
sbFile.append("</td></tr>/r/n");
}
}
}
catch(Exceptione)
{
out.println("<fontcolor=red>error:"+e.toString()+"</font>");
}
%>
<tableborder='1'width='100%'bgcolor='#FFFFFF'cellspacing=0cellpadding=5bordercolorlight=#000000bordercolordark=#FFFFFF>
<tr>
<tdwidth='20%'><%=strCurrentFolder[languageNo]%>:<br><%=strDir%></td><tdwidth='70%'><%=strDrivers[languageNo]%><%=getDrivers()%>
</td>
</tr>
</table>
<tableborder='1'width='100%'bgcolor='#FFFFFF'cellspacing=0cellpadding=5bordercolorlight=#000000bordercolordark=#FFFFFF>
<tr>
<tdwidth='20%'valign="top">
<table>
<tr><td><%=sb%></td>
</tr>
</table>
</td>
<tdwidth='70%'align="center"valign="top">
<tablewidth="100%"border="1"cellspacing="1"cellpadding="4"bordercolorlight="#000000"bordercolordark="#FFFFFF">
<tr>
<tdwidth="26%"align="center"><%=strFileName[languageNo]%></td>
<tdwidth="19%"align="center"><%=strFileSize[languageNo]%></td>
<tdwidth="29%"align="center"><%=strLastModified[languageNo]%></td>
<tdwidth="26%"align="center"><%=strFileOperation[languageNo]%></td></tr>
<tr><tdwidth="25%"align="center"><%=sbFile%></td></tr>
</table>
</td>
</tr>
</table>
希望本文所述对大家jsp程序设计有所帮助。