2024年4月9日发(作者:)
日
f
… … … … 目 …… H ……… …自 ………
实用第一 智慧密集
利用 JsP+JavaBean编写资源(文件)管理器
常祖政
摘 要:利rf]JSP JavaBean技术编写资源(文件)管理器,实现文件/目录的创建、删除功能,并
且可以将当前目录中的文件列表保存到文本文件中,供需要时使用。
关键词:File类;文件/目录
Windows操作系统中的资源管理器非常熟悉,利用它可以
方便的管理系统资源,其中用得最多的是文件管理,可以十分
方便的进行文件的创建、删除等操作,但是不能将文件或文件
夹信息提取出来生成一个单独的文件,进行观察。能不能利用
Java提供的File类的方法编写基于B/S模式的文件管理器弥补
以上缺陷呢?
getName 0
3 getParent()
序号 方法名
表1
功能 返回类型
l delete() 删除抽象路径名表示的文件或目录
返回抽象路径名表示的文件或目录的名称
bool ean
String
返网抽象路径名的父路径名的路径名字符串,如 String
果此路径名没有指定父目录,则返 null
1 技术分析
该系统运行后,将预先设置的磁盘路径中的文件资源列
4 last¥1odified0 返回抽象路径名表示的文件最后一次被修改的 long
时问
出,如图1所示。包括文件/文件夹名称、大小、类型、修改
日期、操作(文件由此操作),模拟了Windows资源管理器的
显示样式.在此页中用户可以建立文件和文件夹、可以删除文
5 length0
6 l{st()
返测抽象路径名表示的文件的长度 }ong
返回抽象路径名所表示的目录中的文件和目录 String[]
的名称所维成字符串数组。
件、对于文件夹类型的资源,单击能进入资源所指向的路径下
显示其中的资源.同时可以由当前路径返回上级目录。
图1
采用JsP和JavaBean技术实现,其中JSP文件负责显示,
充当视图功能,JavaBean负责文件的读取、删除、创建。实现
过程中使用了Java的File类,File类在java.io包中,常用的
方法有以下几个如表1所示。
图2资源(文件)管理器运行主页面
font—size:9pt;
2文件管理器实现
文件管理器的界面如图2所示。
font-weight:normal;
2.1主页面文件index.jsp
<html>
<head>
}
一一
>
</style>
</head>
<%@page contentType=”text/html;charset=gb231 2”%>
<title>文件管理器</title>
<stvle type=“text/css“>
<l一一
.
<%@page import=‘'java.io.File“%>
zi9pt{
<%@page import="java。text.SimpleDateFormat“%>
≮
……
PROG胁啊U_G叽B …………………………………………………………………………………………一一
<jsp:useBean id=”list“class= test.FileOperate“/>
<body>
<center><h2>文件管理器</h2></center>
<%
String path=request.getParameter(。path。):
if(path==nul1)f path=“E:’:)
else
(path=new String(path.getBytes( ISO一8859—1”)):)
list.setPath(path);
File[1 files=list.1istFiles0;
int_-0:%>
<table>
<tr>
<td>
<form action=“createFile.jsp”method=“get”name=‘。FM1。 。
>
<input type=“text。‘name=“name”>
<input type=”hidden。。name= type“value=”dir‘’>
<input type=“hidden“name=。path。value=。<%=list.
decodeString(path)%>”>
<input type=”submit’value=”新建目录”>
</form>
</td>
<td>
<form action=。。createFile jsp method= get“name= FM2”
>
<input type=”text。name=“name >
<input type=‘。hidden”name= type。’value=”file“>
<input type=”hidden“name= path”value=“<%=list.
decodeString(path)%>”>
:<input type= submit“value= 新建文件。>
</form>
</td>
</tr>
</table>
<h3>
当前路径:
<%out.println(1ist.getPath0);%>
<%path=list.dirUp(path);
if(path!=nul1)
{%>
<tr>
<td colspan=…5><a href=index.jsp?path=<%=path%>>
上级目录</a></td>
</tr>
<%)%>
</h3>
<table width=“800 border= 0“cellpadding= 2”cellspacing=。0。’
class= zi9pt“>
<%int fcount=O。dcount=0;%>
<tr>
<td width=”5O%”><b>名称</b><,td>
<td width=”1 0%“><b>大4,</b></td>
<td Width='。10%“><b>类型</b><,cd>
<td width=”20%”><b>修改日期</b></td>
<td width=“1 0%“><b>操作</b></td>
</tr>
<%
for(i=0;i<files.1ength;i++)
{
if(i%2=:1){
%> 一
<tr height=。’20。。bg=””>
<%}else{%>
<tr height=“20“bgcolor=“#F2F2F2“>
<%
)
path=list.addPath(files[i].getName0);
if(files[i].isDirectory0){%>
<td><a href=index.jsp?path=<%=
path%>><%=files[i].getName0%></a></td>
<td> </td>
<td>文件夹</td>
<td><%=new SimpleDateFormat(”yyyy/MM/dd HH:
mm:ss ).format(new java.util.Date(files[i].1astModified0))%><
/td>
<td><a href=deleFile.jsp?path=<%=path%>>删除</
a></td>
<%dcount++;
)else{
String fileName=files[i].getNameO;
%>
<td><%=fileName%><,td>
<td><%=files[i].1engthO%></td>
<td><%=fileName.substring(ifleName.1astlndexOf(”.。)+
1.fileName.1ength())%>文件</td>
<td><%=new SimpleDateFormatryyyytMM/dd HH:
mm:ss ).format(new java.util.Date(files[i].1astModified0))%><
/td>
<td><a href=deleFile.jsp?path=<%=path%>>删除</
a></td>
<% fcount++;
}%>
</tr>
<%
)%>
</table>
<hr align=“left“width=80%-,>
……… ………… ……………………………………‘
实用第一 智慧密集
、
<h3 align= center“>统计结果:<,h3>
<center>
<p><spanI class=”zi9pt >目录总数:<%=dcount%><br>
文件总数:<%=fcount%></span></p>
<p align=“left“>
<a href=。javascript:document.execCommand( SaveAs',true
d:\\file.txt )”class=“zi9pt”>保存目录(文本类型)<,a></p>
</center>
</body>
</html>
2_2文件信息读取类(JavaBean)FileOperate.java
package test;
impo ̄java.io. :
public class FileOperate
{
private String fullPath;
public FileOperate()
{ fullPath=“c:“:)
public FileOperate(String path)
{ ful1Path=path:)
public String getPath()
{ return fullPath;)
,/空格替换为%20
public String decOdeSt ng(St ring src)
{
String des=null;
.f(srcf=nul1){ ’
des= :
for(int i=0;i<src.1ength():i++)
(
if(src.charAt(i)==~){des+=”%20“:}
else{des+=src.charAt(i); )
}
)
return des;
) ,
public String addPath(String fileName)
{
String result= 。:
if《fullPath.charAt(fulIPath.1ength0—1)== )
( result=fullPath+fileName;
}else
{ resuIt:fuIlPath+ +fileName; )
return decodeString(result);
)
public void setPath(String path)
f fullPath=:path;J
public String dirUp(String path)
(
String result= :
ii
电奠■葚技巧与肇妒1
20ii
1
0.5
巧与肇....妒q
_
葚
技
1'
'
L
一-—I_暖 L-自 ,
File dir=new File(path);
result=dir.getParent0;
return decodeString(result);
)
public boolean copyFile(String fileName)
{ return true;)
public boolean pasteFIIe(St ring fileName)
f return true;)
public boolean cutFile(String fileName)
{ return true;)
∥删除文件或目录
public boolean deIeteFile(String path)
{
trv{
File file=new File(path);
return file.delete();
)catch(ExceDtion e)
{
e.p rjntStacl(Trace():
return false;
)
}
/IX当前目录下新建一个子目录
public boolean newDir(String path,String dirName)
{
trv{
File file=new File(path+ ̄,V+dirName);
return file:mkdirs0;
)catch(Exception e){
System.out.println(“目录创建失败! ):
return faIse;
)
)
脏当前目录下新建一个文件
public boolean newFile(String path,String fileName)
{
try{
File file=new File(path+ ̄,\ +fileName);
return file createNewFileO;
)catch《IOExce}ption e)
{
System.out.println(”创建文件失败”J:
return false;
)
)
public static File[1 listRoot()
{ return File.1istRootsO;}
public File[】listFiles()
{
……
PROG胁啊UH瑚隅B …………………………………………………………………………………………
File dir=new File(fulIPath);
String[】SS=dir.1ist();
.f(SS==nul1)
return null;
int n=SS.1ength;
File[】fs=new File[n];
for(int i=0:i<n:i++)
{ fs[i】:new File(dir.getPath0,ss【i】)= )
return fs;
)
)
2.3删除文件或目录deleFile.jsp代码
<html>
<head>
<title>删除文件或目录</title>
</head>
<%@page contentType=“text/html;charset=gb231 2“%>
<%@page import="java.io.File。%>
<jsp:useBean id=“list”class=“test.FileOperate />
<body>
<center><h2>
删除文件或目录
</h2></center>
<%
String path=request.getParameter(“path“)
String parent=list.dirUp(path);
if(1ist.deIeteFile(path)==true)
{%>
删除成功!<br>
<%)
else
{%>
无法删除该文件}<br>
<%}%>
<a href=index.jsp?path=<%=parent%>> ̄.][</a><br>
</body>
</html>
2.4创建文件和文件夹createFile.jsp代码
<html>
<head>
<title>新建文件或目录</title>
</head>
<%@page contentType=。text/html;charset=gb2312”%>
<%@page import= java.io.File“%>
<jsp:useBean id=“list”class=”test.FileO.3erate”/>
<body>
<center><h2>
新建文件或目录
</h2></center>
<%
String path=new String(request.getParameter(”path”)
getBytes(“iso8859-1“),“gb231 2”):
String type=request.getParameter(”type”):
String name=new String(request.getParameter(”name”).
getBytes(“iso8859-1“),”gb231 2 ):
.f(tvpe.equals(。dir”))
{
.f(1ist.newDir(path,name)==true)
{%>
建立目录成功!<br>
<% )else{%>
建立目录失败!<br>
<%)
)else if(type.equals( file“))
{
if(1ist.newFile(path,name)==true)
(%>
建立文件成功!<br>
<% )else{%>
建立文件失败}<br> ’
<% )
)%>
<a href=index.jsp?path=<%=path%>>返回</a><br>
</body>
</html>
3 总结
利用该文件管理器可以将目录结构(包含文件)保存到文
本文件中,经过改进可以将目录信息写入数据库,需要时提取
方便。该功能可以嵌入到提供网络空间的服务中,实现用户对
所属空间的文件管理。
参考文献
【1】邓子云,张赐.JSP网络编程从基础到实践.电子工业出
版社.2006.
【2](美)Cay S.Horstmann,Gary Cornell,程峰,黄若波,章恒种
JAVA核心技术卷11:高级特征.机械工业出版社,2003.
f收稿日期:2009—02—12)
_
发布者:admin,转转请注明出处:http://www.yc00.com/news/1712623728a2091768.html
评论列表(0条)