jsp获取当前目录下的文件和目录,获取windows盘符


转:https://blog.csdn.net/huoyuming/article/details/3910670

(一)获取当前目录下的文件和目录

知识点


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{
   if(file[i].isDirectory())//
   out.print("
"+file[i].toString());
}
%>


(3)
循环判断所返回的是否为目录,并显示出来
文件有
<%
for(int i=0;i{
    if(file[i].isFile())
    out.print("
"+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{
   if(file[i].isDirectory())
   out.print("
"+file[i].toString());
}
%>

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

(二)获取windows盘符

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


<%
File[] roots=File.listRoots();
for(int i=0;i{
out.print("
"+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(" ");
   sb.append(roots[i]+"
 ");
}
//out.println(sb);

%>
<%
//out.print("

"+strCurrentFolder[languageNo]+":
"+path+"
"+sb+"
");
%>



<%=strCurrentFolder[languageNo]%>:
<%=path %>
<%=strDrivers[languageNo] %>:<%=sb%>






目录有:
<%
for(int i=0;i{
   if(file[i].isDirectory())
   out.print("
"+file[i].toString());
}
%>
文件有:
<%
for(int i=0;i{
    if(file[i].isFile())
    out.print("
"+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("");
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{
if(list[i].isDirectory())
{
sb.append(" ");
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 %>