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程序设计有所帮助。
上一篇: 详解JDBC的使用