C#遍历文件名

遍历文件名程序

//////////////////第一种方法/////////////
static ArrayList GetAllFiles(string path)
        {
            ArrayList ret = new ArrayList();
            ret.AddRange(Directory.GetFiles(path));
            foreach (string subDirPath in Directory.GetDirectories(path))
            {
                ret.AddRange(GetAllFiles(subDirPath));
            }
            return ret;
        }
用于C:\Windows的话,约12000个文件,不超过3秒钟
 
//////第二种方法///////////4行搞定。。委托
static List<string> GetAllFiles(string path)
{
    List<string> ret = new List<string>();
    ret.AddRange(Directory.GetFiles(path));
    Array.ForEach(Directory.GetDirectories(path), 
        delegate(string path1){ ret.AddRange(GetAllFiles(path1));});
    return ret;
}






////////////////////////以上返回的全是包含路径的如c:\file.exe////////////////////////
//////////////////第三种方法 只有文件名////////////////////////
static void Main(string[] args )
{
    DirectoryInfo derectory = new DirectoryInfo(@"G:\");
    foreach (var file in directory.GetFiles())
    {
        Console.WriteLine("文件名有{0}",file);
    }
    Console.ReadLine();
}
View Code

 

获取本地G盘目录下的所有文件名,注意,仅仅只有文件名称,不包含文件夹名称,如果想得到全路径,需要使用FullName属性:

 

foreach (var file in directory.GetFiles())
    {
        Console.WriteLine("文件名有{0}",file.FullName);
    }

 

 

--------------------------------------------------

GetFiles获取的就是当前文件夹下面的文件,子文件夹不包括!
MSDN上面是这样说的:
GetFiles(String) 返回指定目录中的文件的名称。 
GetFiles(String, String) 返回指定目录中与指定搜索模式匹配的文件的名称。 
GetFiles(String, String, SearchOption) 返回指定目录中文件的名称,该目录与指定搜索模式匹配并使用某个值确定是否在子目录中搜索。 

 


posted @ 2013-09-27 01:46  kongfl888  阅读(454)  评论(0编辑  收藏  举报