如何遍历硬盘内的所有文件?请给源码让我学学!它的原理是什么?谢了!

解决方案 »

  1.   

    如果事api的话,可以用 findfile ,findnextfile
    java原理应该是一样的 ,递归来获取
      

  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.   

    import java.io.*;
    import javax.swing.*;public class Recurse{
    JFrame jf = new JFrame("Test");
        JTextArea jt = new JTextArea("jt", 1, 20);
        //用JScrollPane来实现JTextArea的滚动条
        JScrollPane js = new JScrollPane(jt, 
         JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
         JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        Recurse(File f){
         jf.getContentPane().add(js);
         jf.setSize(300, 300);
         jf.setVisible(true);
         recurseFile(f, 0);
         System.out.println("End");
        }
        void recurseFile(File file, int spaces){
         String[] dir = file.list();
         for(int i = 0; i < dir.length; i++){
         //加空格
         for(int s = 0; s < spaces; s++){
         jt.append("\t");
        
         }
         jt.append(dir[i]);
         jt.append("\n");
         File temp = new File(file, dir[i]);
         //如果是一个目录,还得去搜索子目录
         if (temp.isDirectory())
         recurseFile(temp, spaces + 1);
         }
        }
        
        public static void main(String[] args){
         if(args.length <1 ){
         System.out.println("Enter args parameter");
         System.exit(0);
         }
         File f = new File(args[0]);
         if (!f.exists()){
         System.out.println("Not Exist");
         System.exit(0);
         }
         new Recurse(f);    
        }
    }=========================================
    运行时输入Args参数:一个路径(如:c:\program files)
      

  4.   

    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());
    }
    }
    佩服,星星就是不一样,很让人期待啊