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[i].toString());
}
%>

(3)循环判断所返回的是否为目录,并显示出来:

<%
for(int i=0;i"+file[i].toString());
}
%>

程序:

<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>



<%
String path=request.getRealPath("/");
File dir=new File(path);
File file[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件
%>
当前<%=path%>
目录有: <% for(int i=0;i"+file[i].toString()); } %>

文件有: <% for(int i=0;i"+file[i].toString()); } %>

(二)获取windows盘符

<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>


<%
File[] roots=File.listRoots();
for(int i=0;i"+roots[i].getPath());
}
%>



(三)将两个程序合并

<%@ 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"};
%>


<%
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");
  sb.append(roots[i]+" ");
}
//out.println(sb);
%>
<%
//out.print("
"+strCurrentFolder[languageNo]+":
"+path+"
"+sb+"
"); %>
<%=strCurrentFolder[languageNo]%>:
<%=path %>
<%=strDrivers[languageNo] %>:<%=sb%>
目录有: <% for(int i=0;i"+file[i].toString()); } %> 文件有: <% for(int i=0;i"+file[i].toString()); } %>

我们进一步的优化,实现

<%@ page contentType="text/html; charset=GBK" %>
<%@page import="java.io.*,java.util.*,java.net.*" %>



<%!
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"); 
sb.append(roots[i]+"   "); 
} 
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(" "); 
sb.append("To ParentFile
- - - - /r/n"); } for(int i=0;i "); sb.append(""+list[i].getName()+""); sb.append(""); } 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(""); sbFile.append(""+list[i].getName()); sbFile.append(""); sbFile.append(""+strLen); sbFile.append(""); sbFile.append(""+strDT); sbFile.append(""); sbFile.append(" "); sbFile.append(strFileEdit[languageNo]+" "); sbFile.append(" "); sbFile.append(strFileDown[languageNo]+" "); sbFile.append(" "); sbFile.append(strFileCopy[languageNo]+" "); sbFile.append(" "); sbFile.append(strFileDel[languageNo]+" "); sbFile.append("/r/n"); } } } catch(Exception e) { out.println("error: "+e.toString()+""); } %>
<%=strCurrentFolder[languageNo]%>:
<%=strDir %>
<%=strDrivers[languageNo] %><%=getDrivers()%>
<%=sb%>
<%=strFileName[languageNo] %> <%=strFileSize[languageNo] %> <%=strLastModified[languageNo] %> <%=strFileOperation[languageNo] %>
<%=sbFile %>

希望本文所述对大家jsp程序设计有所帮助。

你可能感兴趣的:(jsp编程获取当前目录下的文件和目录及windows盘符的方法)