这篇文章主要介绍了jsp编程获取当前目录下的文件和目录及windows盘符的方法,结合实例详细分析了jsp针对目录、文件及Windows盘符的相关操作技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答