当前位置: 移动技术网 > IT编程>开发语言>Java > jsp编程获取当前目录下的文件和目录及windows盘符的方法

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

2017年12月08日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网