当前位置:编程学习 > C#/ASP.NET >>

如何得到目錄下所有文件的名稱

在c#下如何得到目錄下所有文件的名稱?
目錄是指網絡映射盤 --------------------编程问答-------------------- http://blog.csdn.net/youbl/archive/2006/12/06/1432347.aspx

注:这个代码是模仿“我的电脑”实现的一个简单的网页目录浏览器

1、遍历一个目录下的全部目录,要用到System.IO.DirectoryInfo 类的GetDirectories方法:
  DirectoryInfo dir = new DirectoryInfo(@"c:\");  
  foreach(DirectoryInfo dChild in dir.GetDirectories("*")) 
  {//如果用GetDirectories("ab*"),那么全部以ab开头的目录会被显示
    Response.Write(dChild.Name + "<BR>");//打印目录名
    Response.Write(dChild.FullName + "<BR>");//打印路径和目录名
  }
2、遍历一个目录下的全部文件,要用到System.IO.DirectoryInfo 类的GetFiles方法:
  DirectoryInfo dir = new DirectoryInfo(@"c:\");  
  foreach(DirectoryInfo dChild in dir.GetFiles("*"))
  {//如果用GetFiles("*.txt"),那么全部txt文件会被显示
    Response.Write(dChild.Name + "<BR>");//打印文件名
    Response.Write(dChild.FullName + "<BR>");//打印路径和文件名
  }  --------------------编程问答-------------------- C#遍历指定目录的递归(完美改进版+完整程序源码) 
昨天写了一下遍历目录树的思路和核心代码,今天将其实践化了一下,做了个实际的例子,遍历指定目录下的所有文件和文件夹,并将其按层次归类显示,对文件夹有标志提示,将文件夹与文件区分了出来。

下面是改进版的核心方法代码:

 1public ArrayList al = new ArrayList();//定义存储文件和文件夹名的数组
 2    public int aaa = 0;//定义标志位参数,递归时判断该参数,若不为0则非第一次递归
 3    public void GetAllDirList(string strBaseDir)
 4    {
 5        DirectoryInfo di = new DirectoryInfo(strBaseDir);
 6        DirectoryInfo[] diA = di.GetDirectories();
 7        if(aaa==0)
 8        {
 9        FileInfo[] fis2 = di.GetFiles();   //有关目录下的文件   
10        for (int i2 = 0; i2 < fis2.Length; i2++)
11        {
12            al.Add(fis2[i2].FullName);
13            //fis2[i2].FullName是根目录中文件的绝对地址,把它记录在ArrayList中
14        }
15        }
16        for (int i = 0; i < diA.Length; i++)
17        {
18                aaa++;
19                al.Add(diA[i].FullName + "\t<目录>");
20                //diA[i].FullName是某个子目录的绝对地址,把它记录在ArrayList中
21                DirectoryInfo di1 = new DirectoryInfo(diA[i].FullName);
22                DirectoryInfo[] diA1 = di1.GetDirectories();
23                FileInfo[] fis1 = di1.GetFiles();   //有关目录下的文件   
24                    for (int ii = 0; ii < fis1.Length;ii++ )
25                    {
26                        al.Add(fis1[ii].FullName);
27                        //fis1[ii].FullName是某个子目录中文件的绝对地址,把它记录在ArrayList中
28
29                    }   
30                GetAllDirList(diA[i].FullName);
31                //注意:递归了。逻辑思维正常的人应该能反应过来
32        }
33                
34    }
具体原理每行关键核心代码后都有注释,大家应该可以看明白的
下面附上这个方法的使用范例(例子中有两个方法,第一个按钮只遍历指定目录下一级层次;第二个按钮是调用上述方法,遍历了指定目录下的所有层次文件夹和文件)

源代码,点击下载  --------------------编程问答-------------------- 你哪個是本機的目錄。我是想要網絡映射盤的目錄 --------------------编程问答-------------------- 楼上foreach(DirectoryInfo dChild in dir.GetFiles("*")) 这样直接转会出错的吧? --------------------编程问答--------------------   DirectoryInfo f = new DirectoryInfo(@"F:\");
            foreach (DirectoryInfo i in f.GetDirectories)
            {
                if (textBox1.Name == i.Name)
                {
                    textBox2.Text = "ok";

                }

                else
                    textBox2.Text = "no";
            }

        }



能给看看这个哪错了 foreach 语句无法在“方法组”上执行。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,