如何读取一个磁盘下指定后缀名的所有文件
要求:
    可以自己指定磁盘或文件夹,然后读取磁盘或文件夹下的所有文件(包括子文件夹的所有文件)。
就像杀毒软件指定杀毒路径差不多(而且指定的路径可以多选,比如我选了C:还可以同时选择D:)。
说白了就是杀毒软件的病毒查杀功能!!
分不够可以再加!

解决方案 »

  1.   

    msdn searchFile 
    Directory
    class
      

  2.   

    没什么好说的吧,就那么几个类,directory,file,再用用fileinfo什么之类的,遍历目录就行了
      

  3.   

    取名字 GetFile GetDirectory 然后用split('.') 截取点号后面的部分
    就可以了
    我做网络硬盘做过
      

  4.   

    To:soaringbird() ( ) 信誉:100 
    循环、递归遍历
    这个我也知道,我问的是:
    System.IO下就没现成的类吗?
      

  5.   

    如果是 .NET 2.0 的话——string[] files = Directory.GetFiles(@"D:\","*.doc",SearchOption.AllDirectories);
      

  6.   

    .NET 1.1 就得自己写递归了public void GetFiles(string directory,string search,ArrayList list)
    {
        foreach(string path in Directory.GetFiles(directory,search))
            list.Add(path);    foreach(string path in Directory.GetDirectories(directory))
            GetFiles(path,search,list);
    }调用——
    ArrayList list = new ArrayList();
    GetFiles(@"D:\","*.doc",list);list 存放的就是D盘下得所有doc文件了。
      

  7.   

    请问qpl007(蓝色闪电) ( ) 信誉:100 :
    这里的"*.doc"的后缀名能指定多个吗?如果可以如何指定!!
    谢谢
      

  8.   

    flyin2006(北邙无数荒邱,前人田地后人收,说什么龙争虎斗?!) ( ) 信誉:100  2006-07-20 16:39:00  得分: 0  
     
     
       取名字 GetFile GetDirectory 然后用split('.') 截取点号后面的部分
    就可以了
    我做网络硬盘做过
      
     
    =========================================
    你的网络硬盘效率肯定没有使用方法GetFiles(@"D:\","*.doc",list);的高。
    居然取出文件名再split......
      

  9.   

    还有就是多选的界面如果实现呢??就是像杀毒软件选扫描路径一样
    就是.NET下的FoldBrowerDialog.ShowDialog的界面差不多,但是要在每个盘符及文件夹前多加个CheckBox ,请问如何实现???
      

  10.   

    ArrayList al=new ArrayList();
    al.Add(".txt");//放你指定的所有扩展名
    ArrayList alFile=new ArrayList();//放你要的文件
    string[] strTemp;
    strTemp=Directory.GetFiles(你个文件路径);
    for(int k=0; k< strTemp.GetLength(0);k++)
    {
      string str=Path.GetExtension(strTemp[k]);
      if(al.Contains(str))
      {  
       this.alFile.Add(strTemp[k]);
      }
    }
    //楼主试一试,大致的意思是这样的,没测试
      

  11.   

    呵呵,楼主的意思,应该是做个treeview的做法,你可以递归的取
      

  12.   

    请问qpl007(蓝色闪电) ( ) 信誉:100 :
    这里的"*.doc"的后缀名能指定多个吗?如果可以如何指定!!
    谢谢===============================不能,如果想指定多个,只能通过多次调用该方法的方式获取。参看:ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemiodirectoryclassgetfilestopic2.htm
      

  13.   

    在1.x中,
    string[] files = Directory.GetFiles(@"D:\","*.doc");
    在2.0种,
    string[] files = Directory.GetFiles(@"D:\","*.doc",SearchOption.AllDirectories);
    可以参考,
    http://blog.csdn.net/zhzuo/archive/2005/03/08/315125.aspx