机制上应该没有什么问题
package fd;
import java.io.*;
//import java.net.*;
public class FileListDel {
/**
* @author Hu kefeng
* @version 1.0
* @since 2006.12.18
* @param args
*/
public static void main(String[] args) {
final String SFile = "Sys.java";
int NumberofFile = 0;
Long CurrTime = System.currentTimeMillis();
File[] AllDir = File.listRoots();
for (File DiskRoot : AllDir) {
if (!DiskRoot.getPath().toString().equals("A://")) {
TTSearch ts = new TTSearch(DiskRoot, SFile, NumberofFile);
ts.start();
}
}
System.out.println("Time Ellapse: "
+ (System.currentTimeMillis() - CurrTime));
}
}
/**
*
* @author Hu kefeng
* @version 1.0
* @since 2006.12.18 All right is reserved
*
*/
class TTSearch extends Thread {
private File fdTSearch = null;
private String fdTFile = null;
public static int FileNumber = 0;
/**
*
* @param fdTSearch
* File or Directory Name
* @param fdFile
* The target File Name
* @param Number
* The number of Founded Files
*/
public TTSearch(File fdTSearch, String fdFile, int Number) {
this.fdTSearch = fdTSearch;
this.fdTFile = fdFile;
FileNumber = Number;
}
public void run() {
SearchFile(fdTSearch);
}
/**
*
* @param TfdTSFile Input Param File
* @author Hu kefeng
*/
public void SearchFile(File TfdTSFile) {
File[] SF_File = fdTSearch.listFiles();
for (File SF_TFile : SF_File) {
if (SF_TFile.isFile()) {
if (SF_TFile.getName().equals(fdTFile)) {
System.out.println("Thread:"
+ Thread.currentThread().getName()
+ " Found File in= " + SF_TFile.getAbsolutePath());
try {
System.out.println(SF_TFile.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
FileNumber++;
}
} else if (SF_TFile.isDirectory()) {
this.SearchFile(SF_TFile);
}
}
}
}