如何取目录下的所有文件,包括子目录的文件
我试了 Directory.GetFiles("d:\\web\\");
但不行,这个只能取目录下的所有文件,但子目录下的文件无法取到。

解决方案 »

  1.   

    試下這個, 一定可以取到子目錄的.System.IO.FindFile(@"\\stknts46\Sapweb\D",ref fileList,".txt");
    string strFileName="";
    for(int i=0;i<fileList.Count;i++)
    {
     System.IO.FileInfo thisfile=new FileInfo(fileList[i].ToString ().Trim ());
     strFileName+=thisfile.Name.ToString()+"_"; //得到目錄下所有文件的文件名.
     }
      

  2.   

    不求有分,但求对你有所帮助
    /// <summary>
    /// 梯归的方式列出目录下的所有可用的页面信息
    /// 调用方法;
    /// String sPath = Request.MapPath(Request.ApplicationPath);
    /// System.IO.DirectoryInfo curDir = new System.IO.DirectoryInfo(sPath);
    /// listAviablePages(curDir.CreateSubdirectory("modules"),"",suffix,ddlList);
    /// 注:curDir.CreateSubdirectory("modules")为列出应用程序根目录下modules子目录下的所有可用页面信息
    /// 如需列出应用程序根目录下的所有可用页面信息,直接用curDir即可
    /// </summary>
    /// <param name="curDir">当前的目录</param>
    /// <param name="tempPath">临时路径,默认为空,一般不填</param>
    /// <param name="suffix">存放扩展名的字符数组</param>
    /// <param name="ddlList">要填充的下拉控件名,此处为DropDownList</param>
    public static void ListAviablePages(System.IO.DirectoryInfo curDir,string tempPath,string[] suffix,DropDownList ddlList)
    {
    System.IO.FileInfo[] files = curDir.GetFiles("*.*");
    for(int i = 0 ;i<files.Length;i++)
    {
    string fileName =  tempPath+"/"+files[i].Name;
    for(int j=0;j<suffix.Length;j++)
    {
    if(fileName.EndsWith(suffix[j]))
    {
    if(fileName.StartsWith("/"))
    fileName = fileName.Substring(1);
    ddlList.Items.Add(new ListItem(fileName,fileName));
    }
    }
    }
    System.IO.DirectoryInfo[] subDirs = curDir.GetDirectories();
    for(int i = 0 ;i<subDirs.Length;i++)
    {
    if(subDirs[i].Name.StartsWith("_"))
    continue;
    string newPath = tempPath+"/"+subDirs[i].Name;
    ListAviablePages(subDirs[i],newPath,suffix,ddlList);
    }
    }