多次调用GetFiles,每次取一样不就行了,没别的办法

解决方案 »

  1.   

    DirectoryInfo di = new DirectoryInfo("c:\\");
    FileInfo[] fiArr = di.GetFiles();
    foreach (FileInfo fri in fiArr)
    {
    //过虑:
    //if(扩展名字是mp3或者avi等)
    label1.Text+=(fri.Name);
    }
      

  2.   

    DirectoryInfo di = new DirectoryInfo("c:\\");
    FileInfo[] fiArr = di.GetFiles();
    foreach (FileInfo fri in fiArr)
    {
    //过虑:
    if(fri.Extension == ".mp3" || fri.Extension == ".avi")
    label1.Text+=(fri.Name);
    }
      

  3.   

    获取某一种类型可以这样:
    FileInfo [] strfile=dir.GetFiles("*.mp3");能不能在此处获取多种类型?我的原来的代码如下:
    DirectoryInfo dir=new DirectoryInfo("C:\\");
    FileInfo [] strfile=dir.GetFiles();
    int i=strfile.Length;
    Random ro=new Random(unchecked((int)DateTime.Now.Ticks));
    int re=ro.Next(0,i);
    因为我要随机选取文件。
      

  4.   

    dir.GetFiles("*.mp3"); 这样的用法就可以但不能指定多个,不过允许使用通配符,比如 dir.GetFiles("*.mp?");然后你可以根据strfile[i].Extension 来确定
      

  5.   

    System.IO.DirectoryInfo dirInfo=new System.IO.DirectoryInfo("F:\\");
    Object[] oFileInfo=this.GetFileInfo(dirInfo,"*.mp3|*.pdf|*.rar");
    for(int i=0;i<oFileInfo.Length;i++)
    {
    System.Console.Out.WriteLine(((System.IO.FileInfo)oFileInfo[i]).Name);
    }public Object[] GetFileInfo(System.IO.DirectoryInfo dirInfo,string sSearchPattern)
    {
    string[] sSearch=sSearchPattern.Split('|');
    System.Collections.ArrayList al=new System.Collections.ArrayList();
    System.IO.FileInfo[] fiTemp=null;
    for(int i=0;i<sSearch.Length;i++)
    {
    fiTemp=dirInfo.GetFiles(sSearch[i].ToString());
    al.AddRange(fiTemp);
    }
    return al.ToArray();
    }
      

  6.   

    to chinchy(人民需要人民币) :((System.IO.FileInfo)oFileInfo[i]).Name
    出现错误:“object”并不包含对“Name”的定义
      

  7.   

    to chinchy(人民需要人民币) :
    不好意思,我写错了。((System.IO.FileInfo)oFileInfo[i]).Name
    我写成了(System.IO.FileInfo)oFileInfo[i].Name
      

  8.   

    谢谢!已经搞定!
    不过,
    ((System.IO.FileInfo)oFileInfo[i]).Name
    应该为((System.IO.FileInfo)oFileInfo[i]).FullName要不然文件路径显示为当前程序的路径。