java 如何搜索硬盘中的文件

解决方案 »

  1.   

    File root=new File("c:/");
    File[] files=folderFiles(root);
    }folderFiles(File folder){
    File[] files=folder.listFiles();
    for(int i=0;i<files.length();i++){
    if(files[i].isFolder){
    folderFiles(files[i].);
    }
    }
    取files 即可  如果需要文件结构,在各层嵌套添加至结构
      

  2.   

    害下楼主,呵呵。困了,敲下代码。递归是合适的,我现在已经遍历了。public   void   iterate()   {  
         iterate(File.listRoots());  
      }  
       
    public   void   iterate(File   []f)   {  
      for(int   i=0;i<f.length;i++)   {  
         if(f[i].isDirectory())  
           iterate(f[i].listFiles());  
           System.out.println(f[i].getName());  
         }  
      }
      

  3.   

    有回来看到这个贴了,给你们说一下,使用listFiles()方法得到的那个数组中的文件一定要判断是否可读?如果不可读一定要跳过,不然Exception就出来了
      

  4.   


    import java.io.*;
    import java.util.Vector;
    public class test{
    private Vector vfiles = new Vector();
    private String[] files;
    public test(String path) {
    VisitFiles(new File(path));
    }
    private void VisitFiles(File directory) {
    if (directory.isDirectory()) {
    files = directory.list();
    for (int i = 0; i < files.length; i++) {
    File file = new File(directory.toString() + "\\" + files[i]);
    if (file.isDirectory()) {
    VisitFiles(new File(directory.toString() + "\\" + files[i]));
    } else {
    vfiles.add(directory.toString() + "\\" + files[i]);
    }
    }
    } else {
    vfiles.add(directory.toString());
    }
    }
    public static void main(String[] args) {
    new test("文件路径");
    }
    }