1. 程式人生 > >使用Java獲得電腦各個分割槽下的所有檔名和路徑

使用Java獲得電腦各個分割槽下的所有檔名和路徑

程式碼經本人親自測試,可以使用,就是比較慢,把200G的C盤全部掃描用了接近2分鐘,獲得了一個18M左右的txt檔案

好了不說廢話了,直接上程式碼

/**
獲得電腦磁碟各個分割槽下的所有檔名和所在路徑名

Author:ylqHUST
*/


import java.io.*;
//篩選器,從一個目錄下篩選出資料夾
class filefilter implements FileFilter
{
    public boolean accept(File f)
    {
        if(f.isDirectory())
            return true;
        return false;
    }
}
public class getAllFileNameAndPath
{
    public static FileWriter fw=null;
    public static void main(String[] args)throws Exception
    {
        fw=new FileWriter("Directory.txt");//這裡的路徑為一個txt檔案路徑,用來存放獲得的資料
        File f=null;
        File[] list=f.listRoots();
        for(int i=0;i<list.length;i++)
        {
            f=new File(list[i].getPath());
            try
            {
                getDirectorys(f,fw);
            }
            catch (Exception e)
            {
            }
        }
        fw.close();        
    }
            
            
    public static void getDirectorys(File f,FileWriter fw) throws Exception
    {
        printDirectorys(f,fw);
        File[] l=f.listFiles(new filefilter());
        if(l.length==0)
            return;
        for(int i=0;i<l.length;i++)
        {
            try
            {
                getDirectorys(l[i],fw);
            }
            catch (Exception e)
            {
            }
        }
    }
    public static void printDirectorys(File f,FileWriter fw) throws Exception
    {
        fw.write(f.toString()+"----------該目錄下的檔名------------------------------------------------\r\n");
        String[] l=f.list();
        if(l.length==0)
            return;
        for(int i=0;i<l.length;i++)
        {
            fw.write(l[i]+"\r\n");
            fw.flush();
        }
    }
}

異常隨便搞了一下,沒有怎麼處理,不過還是可以執行的

轉載請註明出處