基本信息
源码名称:C# 获取指定目录下(含子文件夹)指定后缀的所有文件路径 示例源码下载
源码大小:2.80KB
文件格式:.cs
开发语言:C#
更新时间:2013-11-06
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

调用示例:


FileAccess fa = new FileAccess();
System.Collections.ArrayList filesPath = fa.GetAllFileName(@"C:\inetpub\wwwroot\www_baidu002_com",".html");






    public class FileAccess
    {

        //储存所有文件夹名
        private ArrayList dirs;

        public FileAccess()
        {
            dirs = new ArrayList();
        }

        //获取所有文件名
        private ArrayList GetFileName(string dirPath)
        {
            ArrayList list = new ArrayList();

            if (Directory.Exists(dirPath))
            {
                list.AddRange(Directory.GetFiles(dirPath));
            }
            return list;
        }

        //获取所有文件夹及子文件夹
        private void GetDirs(string dirPath)
        {
            if (Directory.GetDirectories(dirPath).Length > 0)
            {
                foreach (string path in Directory.GetDirectories(dirPath))
                {
                    dirs.Add(path);
                    GetDirs(path);
                }
            }
        }

        /// <summary>
        /// 获取给出文件夹及其子文件夹下的所有文件名
        /// (文件名为路径加文件名及后缀,
        /// 使用的时候GetAllFileName().ToArray()方法可以转换成object数组
        /// 之后再ToString()分别得到文件名)
        /// </summary>
        /// <param name="rootPath">文件夹根目录</param>
        /// <returns></returns>
        public ArrayList GetAllFileName(string rootPath)
        {
            dirs.Add(rootPath);
            GetDirs(rootPath);
            object[] allDir = dirs.ToArray();

            ArrayList list = new ArrayList();

            foreach (object o in allDir)
            {
                list.AddRange(GetFileName(o.ToString()));
            }

            return list;
        }
        /// <summary>
        /// 获取指定目录下 指定后缀的文件
        /// </summary>
        /// <param name="rootPath"></param>
        /// <param name="extName"></param>
        /// <returns></returns>
        public ArrayList GetAllFileName(string rootPath, string extName)
        {
            ArrayList list = this.GetAllFileName(rootPath);
            ArrayList listresult = new ArrayList();
            foreach (var item in list)
            {
                string strExt = Path.GetExtension(item.ToString());
                if (strExt.ToLower() == extName.ToLower())
                {
                    listresult.Add(item);
                }
            }
            return listresult;
        }

        /// <summary>
        /// 如果上个方法不知道怎么用,那就调用这个方法吧
        /// </summary>
        /// <param name="rootPath"></param>
        /// <returns></returns>
        public List<string> FileName(string rootPath)
        {
            List<string> list = new List<string>();

            foreach (object o in GetAllFileName(rootPath).ToArray())
            {
                list.Add(o.ToString());
            }
            return list;
        }
    }