日期:2014-05-20  浏览次数:20714 次

遍历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();