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程序设计有所帮助。

(0)

相关推荐

  • JSP针对XML文件操作技巧实例分析

    本文实例讲述了JSP针对XML文件操作技巧.分享给大家供大家参考,具体如下: XML(Extensible Markup   Language)可扩展标记语言,这个基础知识在早些已经学习过.而这篇教程为什么把它放在J2EE下边呢,因为他也是J2EE的13规范之一,虽然XML是W3C万维网组织联盟指定的,并做了规范,所以说也是一种规范,我们也必须按照规范来,和JDBC,Servlet,Jsp,Ejb等一样的. 前边的文章已经介绍了XML的一些基础知识,主要是用来存储,传输数据的,但是这些数据我们怎

  • jsp编程中session的用法实例分析

    本文实例讲述了jsp编程中session的用法.分享给大家供大家参考,具体如下: TTP协议是无状态的,即信息无法通过HTTP协议本身进传递.为了跟踪用户的操作状态,ASP应用SESSION对象.JSP使用一个叫HttpSession的对象实现同样的功能.HTTPSession 是一个建立在cookies 和URL-rewriting上的高质量的界面.Session的信息保存在服务器端,Session的id保存在客户机的cookie中.事实上,在许多服务器上,如果浏览器支持的话它们就使用cook

  • jsp+Servlet编程实现验证码的方法

    本文实例讲述了jsp+Servlet编程实现验证码的方法.分享给大家供大家参考,具体如下: 这里用到两个类,一个用于验证码实现,一个为后台Servlet验证输入是否正确: CodeUtil.java--------验证码具体实现: package util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.

  • jsp 页面上图片分行输出小技巧

    <table border="0" cellpadding="2"> <c:forEach items="${pics}" var="pic" varStatus="status"> <c:if test="${((status.index)%3)==0}"><tr></c:if> <td> <input cl

  • jsp编程常用技巧小结

    本文实例总结了jsp编程常用技巧.分享给大家供大家参考,具体如下: 一.分离下拉列表框中的值 页面中有一个下拉列表框,如下: <td><select > <option value=""></option> <option value="18~30">18~30岁</option> <option value="31~40">31~40岁</option&g

  • jsp编程去除空白行的方法

    本文实例讲述了jsp编程去除空白行的方法.分享给大家供大家参考,具体如下: JSP中由于引入包命令及其他处理,渲染出来的页面源代码很多换行. 以前有很多方法来解决,如 1.在编写源码中注意格式,多行并一行.这个编写比较麻烦,源码不好看. 2.自己写标签,在运行时去除空白行.虽然时间一般很短,但也是耗了时. tomcat 6中天然支持这种功能 1.在工程的web.xml上加上如下配置 <jsp-config> <jsp-property-group> <url-pattern&

  • 卖jsp编程技巧的那个垃圾的所有实例的答案全部已收集,现将他人收集的实例答案公布出来,大家鉴赏!

    1. 如何让选中的一行记录高亮显示?    http://topic.csdn.net/t/20050105/09/3699823.html 2. 如何在下拉列表框里选择一个值后跳出新窗口?    http://topic.csdn.net/t/20050107/15/3707444.html 3. 如何在JSP中启动execl?    http://community.csdn.net/Expert/TopicView1.asp?id=4909154    http://community.c

  • 纯JSP+DWR实现三级联动下拉选择菜单实现技巧

    网上看到一些例子,对于一个简单的三级联动,都加上什么Struts, Hibernate诸如此类的框架.这个Ajax联动殊不知和这些框架有什么关系,一个小Demo干嘛整得那么大. 今天我做了一个dwr+jsp做的例子. web.xml: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.s

  • JSP简明教程:令人兴奋的脚本编程

    如果你是直接使用Java servlets,那你将不得不在Java类中处理HTTP输入和HTML输出,你需要丰富的Java编程经验来构建复杂的应用程序.JSP的加入,使你可以把HTML的表达逻辑从植入servlets中的复杂的商务逻辑区分开来.这意味着可以由有经验的脚本编写者来编写表达层代码,而高级的Java开发者能够集中精力去解决servlets和bean中更为复杂的问题. 不管你有没有Java编程知识,都能够使用JSP.JSP包含了一些服务器端的标签,使得不用写一行Java代码就能显示动态数

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

    本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法.分享给大家供大家参考,具体如下: (一)获取当前目录下的文件和目录 知识点 1 file对象的应用 2 listFiles()方法 3 isDirectory()方法,isFile()方法 判断是否为目录或是文件 4转换字符串方法toString (1)创建一个file对象dir, 然后用listFiles()方法返回当前目录下所有文件 String path=request.getRealPath("/")

  • VBS获取当前目录下所有文件夹名字的代码

    VBS获取当前目录下所有文件夹名字,不包括子文件夹.我要给每个文件夹进行操作,所以最好用循环输出. 测试的时候要保证当前目录下有文件夹才可以,否则输出为空. 复制代码 代码如下: Set ws=WScript.CreateObject("wscript.shell")w=ws.CurrentDirectorySet fso=WScript.CreateObject("scripting.filesystemobject")Set fs=fso.GetFolder(w

  • Golang获取目录下的文件及目录信息操作

    一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() { pwd,_ := os.Getwd() //获取文件或目录相关信息 fileInfoList,err := ioutil.ReadDir(pwd) if err != nil { log.Fatal(err) } fmt.Println(len(fileInfoList)) for i := range fileInfoList { fmt.Println(fileInfoList[i].Name()) //打印

  • 根据当前目录下的文件生成网址列表的bat

    功能要求:  例如当面目录下有100个图片文件.文件名不一定有规律 如下图所示 我们想实现如下列表: http://files.jb51.net/file_images/article/201305/2013051914225117.jpg http://files.jb51.net/file_images/article/201305/2013051914225118.jpg http://files.jb51.net/file_images/article/201305/2013051914

  • jsp中获取当前目录的方法

    本文实例讲述了jsp中获取当前目录的实现方法,分享给大家供大家参考.具体实现方法如下: 1.利用System.getProperty()函数获取当前路径: 复制代码 代码如下: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2.使用File提供的函数获取当前路径: 复制代码 代码如下: File directory = new File("");//设定为当前文件夹 try

  • python 获取当前目录下的文件目录和文件名实例代码详解

    os模块下有两个函数: os.walk() os.listdir() # -*- coding: utf-8 -*- import os def file_name(file_dir): for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 print(files) #当前路径下所有非目录子文件 输出格式为: 当前文件目录路径 当前路径下子文件目录(若存在, 不存在则为 []

  • Python实现获取当前目录下文件名代码详解

    一. 小背景: 事情是这样的:本学期小崔又担任好多课代表,其中英语科课程中老师布置了一项作业并需要我收集,为提高英语作业完成率呢,需要每天统计作业的上交情况,并将名单公示,由于处在疫情期间的大学生最近网课和打卡系列活动那么多,况且小崔最近比较'懒',能够用一个python命令来完成这个工作量何乐而不为呢! 二. 实现过程 实现环境 Windows10     python 3 [这个是菜鸟教程里的python3环境搭建](https://www.runoob.com/python3/python

  • PHP使用递归方式列出当前目录下所有文件的方法

    本文实例讲述了PHP使用递归方式列出当前目录下所有文件的方法.分享给大家供大家参考.具体实现方法如下: <?phpfunction filelist($pathname,$i){//定义一个filelist函数    $dir=opendir($pathname);    while(($file=readdir($dir))!== false){        $fname=$pathname."/".$file;        if(is_dir($fname)&&a

  • python 获取文件下所有文件或目录os.walk()的实例

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目录树的路径 2.参数农户topdown默认是"True",表示首先返回根目录树下的文件,然后,再遍历目录树的子目录.topdown的值为"False",则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件 3.参数oneerror的默认值是"

  • php获取目录下所有文件及目录(多种方法)(推荐)

    获取某目录下所有子文件和子目录 function getDirContent($path){ if(!is_dir($path)){ return false; } //readdir方法 /* $dir = opendir($path); $arr = array(); while($content = readdir($dir)){ if($content != '.' && $content != '..'){ $arr[] = $content; } } closedir($dir

随机推荐