欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp编程获取当前目录下的文件和目录及windows盘符的方法

程序员文章站 2022-05-28 17:45:47
本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法。分享给大家供大家参考,具体如下: (一)获取当前目录下的文件和目录 知识点 1 file...

本文实例讲述了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程序设计有所帮助。