首页 > 编程 > JSP > 正文

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

2024-09-05 00:22:25
字体:
来源:转载
供稿:网友

这篇文章主要介绍了jsp编程获取当前目录下的文件和目录及windows盘符的方法,结合实例详细分析了jsp针对目录、文件及Windows盘符的相关操作技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法。分享给大家供大家参考,具体如下:

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

知识点

1 file对象的应用

2 listFiles()方法

3 isDirectory()方法,isFile()方法 判断是否为目录或是文件

4转换字符串方法toString

(1)创建一个file对象dir,

然后用listFiles()方法返回当前目录下所有文件

 

 
  1. String path=request.getRealPath("/"); 
  2. File dir=new File(path); 
  3. File file[]=dir.listFiles(); 

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

 

 
  1. <% 
  2. for(int i=0;i<file.length;i++) 
  3. if(file[i].isDirectory())// 
  4. out.print("<br>"+file[i].toString()); 
  5. %> 

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

 

 
  1. <% 
  2. for(int i=0;i<file.length;i++) 
  3. if(file[i].isFile()) 
  4. out.print("<br>"+file[i].toString()); 
  5. %> 

程序:

 

 
  1. <%@ page contentType="text/html;charset=GB2312"%> 
  2. <%@ page import="java.io.*"%> 
  3. <html> 
  4. <title></title> 
  5. <body> 
  6. <% 
  7. String path=request.getRealPath("/"); 
  8. File dir=new File(path); 
  9. File file[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件 
  10. %> 
  11. 当前<%=path%><br> 
  12. 目录有: 
  13. <% 
  14. for(int i=0;i<file.length;i++) 
  15. if(file[i].isDirectory()) 
  16. out.print("<br>"+file[i].toString()); 
  17. %> 
  18. <p>文件有: 
  19. <% 
  20. for(int i=0;i<file.length;i++) 
  21. if(file[i].isFile()) 
  22. out.print("<br>"+file[i].toString()); 
  23. %> 
  24. </body> 
  25. </html> 

(二)获取windows盘符

 

 
  1. <%@ page contentType="text/html;charset=GB2312"%> 
  2. <%@ page import="java.io.*"%> 
  3. <html> 
  4. <body> 
  5. <% 
  6. File[] roots=File.listRoots(); 
  7. for(int i=0;i<roots.length;i++) 
  8. out.print("<br>"+roots[i].getPath()); 
  9. %> 
  10. </body> 
  11. </html> 

(三)将两个程序合并

 

 
  1. <%@ page contentType="text/html;charset=GB2312"%> 
  2. <%@ page import="java.io.*,java.util.*,java.net.*" %> 
  3. <%! 
  4. private final static int languageNo=0; //语言版本,0 : 中文; 1:英文 
  5. String[] strDrivers = {"驱动器","Drivers"}; 
  6. String[] strCurrentFolder= {"当前目录","Current Folder"}; 
  7. %> 
  8. <html> 
  9. <body> 
  10. <% 
  11. String path=request.getRealPath("/"); 
  12. File dir=new File(path); 
  13. File file[]=dir.listFiles();//用file对象的listFiles()方法返回指定目录下的文件 
  14. StringBuffer sb=new StringBuffer(strDrivers[languageNo] + " : "); 
  15. File roots[]=File.listRoots(); 
  16. for(int i=0;i<roots.length;i++) 
  17. sb.append(" <a href=/"javascript:doForm('','"+roots[i]+"//','','','1','');/">"); 
  18. sb.append(roots[i]+"</a>"); 
  19. //out.println(sb); 
  20. %> 
  21. <% 
  22. //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>"); 
  23. %> 
  24. <table border='1' width='100%' bgcolor='#FFFFFF' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF> 
  25. <tr> 
  26. <td width='40%'><%=strCurrentFolder[languageNo]%>:<br><%=path %></td><td width='60%'><%=strDrivers[languageNo] %>:<%=sb%></td></tr> 
  27. </table> 
  28. <table border='1' width='100%' bgcolor='#FFFFFF' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF> 
  29. <tr> 
  30. <td width='40%'>目录有: 
  31. <% 
  32. for(int i=0;i<file.length;i++) 
  33. if(file[i].isDirectory()) 
  34. out.print("<br>"+file[i].toString()); 
  35. %> 
  36. </td> 
  37. <td width='60%'>文件有: 
  38. <% 
  39. for(int i=0;i<file.length;i++) 
  40. if(file[i].isFile()) 
  41. out.print("<br>"+file[i].toString()); 
  42. %> 
  43. </td> 
  44. </tr> 
  45. </table> 
  46. </body> 
  47. </html> 

我们进一步的优化,实现

 

 
  1. <%@ page contentType="text/html; charset=GBK" %> 
  2. <%@page import="java.io.*,java.util.*,java.net.*" %> 
  3. <head> 
  4. <style type="text/css"
  5. td,select,input,body{font-size:9pt;} 
  6. A { text-decoration: none } 
  7. #tablist{ 
  8. padding: 5px 0; 
  9. margin-left: 0; 
  10. margin-bottom: 0; 
  11. margin-top: 0.1em; 
  12. font:9pt; 
  13. #tablist li{ 
  14. list-style: none; 
  15. display: inline; 
  16. margin: 0; 
  17. #tablist li a{ 
  18. padding: 3px 0.5em; 
  19. margin-left: 3px; 
  20. border: 1px solid ; 
  21. background: #FFFFFF; 
  22. #tablist li a:link, #tablist li a:visited{ 
  23. color: navy; 
  24. #tablist li a.current{ 
  25. background: #FFFFFF; 
  26. #tabcontentcontainer{ 
  27. width: 100%; 
  28. padding: 5px; 
  29. border: 1px solid black; 
  30. .tabcontent{ 
  31. display:none; 
  32. </style> 
  33. </head> 
  34. <%! 
  35. private final static int languageNo=1; //语言版本,0 : 中文; 1:英文 
  36. String[] strCurrentFolder= {"当前目录","Current Folder"}; 
  37. String[] strDrivers = {"驱动器","Drivers"}; 
  38. String[] strFileName = {"文件名称","File Name"}; 
  39. String[] strFileSize = {"文件大小","File Size"}; 
  40. String[] strLastModified = {"最后修改","Last Modified"}; 
  41. String[] strFileOperation= {"文件操作","Operations"}; 
  42. String[] strFileEdit = {"修改","Edit"}; 
  43. String[] strFileDown = {"下载","Download"}; 
  44. String[] strFileCopy = {"复制","Move"}; 
  45. String[] strFileDel = {"删除","Delete"}; 
  46. String getDrivers()  
  47. {  
  48. StringBuffer sb=new StringBuffer(": ");  
  49. File roots[]=File.listRoots();  
  50. for(int i=0;i<roots.length;i++)  
  51. {  
  52. sb.append("<a href='?path="+roots[i]+"'>");  
  53. sb.append(roots[i]+"</a> ");  
  54. }  
  55. return sb.toString();  
  56. String formatPath(String p) 
  57. StringBuffer sb=new StringBuffer(); 
  58. for (int i = 0; i < p.length(); i++)  
  59. if(p.charAt(i)=='//'
  60. sb.append("////"); 
  61. else 
  62. sb.append(p.charAt(i)); 
  63. return sb.toString(); 
  64. public static String toChinese(String str) 
  65. try
  66. if(str==null
  67. return ""
  68. }else 
  69. str=new String(str.getBytes("ISO8859_1"),"GBK"); 
  70. return str; 
  71. }catch(Exception e) 
  72. return ""
  73. %> 
  74. <% 
  75. request.setCharacterEncoding("gb2312"); 
  76. String strDir =toChinese( request.getParameter("path"));  
  77. if(strDir==null||strDir.length()<1) 
  78. strDir = request.getRealPath("/"); 
  79. StringBuffer sb=new StringBuffer("");  
  80. StringBuffer sbFile=new StringBuffer("");  
  81. try 
  82. File objFile = new File(strDir);  
  83. File list[] = objFile.listFiles();  
  84. if(objFile.getAbsolutePath().length()>3)  
  85. {  
  86. sb.append("<tr><td ></td><td><a href='?path="+formatPath(objFile.getParentFile 
  87. ().getAbsolutePath())+"'>");  
  88. sb.append("To ParentFile</a><br>- - - - </td></tr>/r/n");  
  89. }  
  90. for(int i=0;i<list.length;i++)  
  91. {  
  92. if(list[i].isDirectory())  
  93. {  
  94. sb.append("<tr><td></td><td>");  
  95. sb.append("<a href='?path="+formatPath(list[i].getAbsolutePath())+"'>"+list[i].getName()+"</a>");  
  96. sb.append("</td></tr>"); 
  97. }  
  98. else 
  99. {  
  100. String strLen="";  
  101. String strDT="";  
  102. long lFile=0;  
  103. lFile=list[i].length(); 
  104. if(lFile>1000000)  
  105. {  
  106. lFile=lFile/1000000;  
  107. strLen="" + lFile + " M";  
  108. }  
  109. else if(lFile>1000)  
  110. {  
  111. lFile=lFile/1000;  
  112. strLen="" + lFile + " K";  
  113. }  
  114. else 
  115. {  
  116. strLen="" + lFile + " Byte";  
  117. }  
  118. Date dt=new Date(list[i].lastModified());  
  119. strDT=dt.toLocaleString();  
  120. sbFile.append("<tr><td>");  
  121. sbFile.append(""+list[i].getName());  
  122. sbFile.append("</td><td>");  
  123. sbFile.append(""+strLen);  
  124. sbFile.append("</td><td>");  
  125. sbFile.append(""+strDT);  
  126. sbFile.append("</td><td>"); 
  127. sbFile.append(" <a href=>"); 
  128. sbFile.append(strFileEdit[languageNo]+"</a> "); 
  129. sbFile.append(" <a href=>"); 
  130. sbFile.append(strFileDown[languageNo]+"</a> "); 
  131. sbFile.append(" <a href=>"); 
  132. sbFile.append(strFileCopy[languageNo]+"</a> "); 
  133. sbFile.append(" <a href=>"); 
  134. sbFile.append(strFileDel[languageNo]+"</a> "); 
  135. sbFile.append("</td></tr>/r/n");  
  136. }  
  137. }  
  138. }  
  139. catch(Exception e)  
  140. {  
  141. out.println("<font color=red>error: "+e.toString()+"</font>");  
  142. }  
  143. %> 
  144. <table border='1' width='100%' bgcolor='#FFFFFF' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF> 
  145. <tr> 
  146. <td width='20%'><%=strCurrentFolder[languageNo]%>:<br><%=strDir %></td><td width='70%'><%=strDrivers[languageNo] %><%=getDrivers()%> 
  147. </td> 
  148. </tr> 
  149. </table> 
  150. <table border='1' width='100%' bgcolor='#FFFFFF' cellspacing=0 cellpadding=5 bordercolorlight=#000000 bordercolordark=#FFFFFF> 
  151. <tr> 
  152. <td width='20%'valign="top"
  153. <table > 
  154. <tr><td><%=sb%></td> 
  155. </tr> 
  156. </table> 
  157. </td> 
  158. <td width='70%'align="center" valign="top"
  159. <table width="100%"border="1" cellspacing="1" cellpadding="4" bordercolorlight="#000000" bordercolordark="#FFFFFF"
  160. <tr> 
  161. <td width="26%" align="center"><%=strFileName[languageNo] %></td> 
  162. <td width="19%" align="center"><%=strFileSize[languageNo] %></td> 
  163. <td width="29%" align="center"><%=strLastModified[languageNo] %></td> 
  164. <td width="26%" align="center"><%=strFileOperation[languageNo] %></td></tr> 
  165. <tr><td width="25%" align="center"><%=sbFile %></td></tr> 
  166. </table> 
  167. </td> 
  168. </tr> 
  169. </table> 

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


注:相关教程知识阅读请移步到JSP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表