首页 > 开发 > 综合 > 正文

C#实现目标路径下文件递归的类

2024-07-21 02:27:40
字体:
来源:转载
供稿:网友

using system;
using system.io;
using system.collections;

namespace dsclub
{
    /**//// <summary>
    /// dirlist 的摘要说明。
    /// </summary>
    public class dirlist
    {
        private string strinitfilepath;
        private bool bfatchall;

        // 构造函数
        public dirlist()
        {
            bfatchall = false;
            strinitfilepath = "c://";
        }
        public dirlist(string strfilepath)
        {
            bfatchall = false;
            strinitfilepath = strfilepath;
        }

        // 是否递归出所有的文件
        public bool recursionfiles
        {
            get
            {
                return bfatchall;
            }
            set
            {
                bfatchall = value;
            }
        }

        // 取得文件的函数
        public arraylist getfiles()
        {
            return getfiles(strinitfilepath, bfatchall);
        }

        public static arraylist getfiles(string strpath, bool resultsall)
        {
            arraylist al  = new arraylist();
            // 判断路径是否存在
            if(!directory.exists(strpath))
            {
                throw(new applicationexception("访问的路径" + strpath + "不存在,或者它不是个文件夹。"));
            }

            string[] temp =  directory.getfiles(strpath);
            foreach(string afile in temp)
            {
                al.add(afile);
            }

            // 如果此目录下不存在文件,则把文件夹路径返回,并用///作标识
            if(temp.length == 0)
            {
                al.add("///" + strpath);
            }

            if(resultsall)
            {
                temp = directory.getdirectories(strpath);
                foreach(string adir in temp)
                {
                    al.addrange(getfiles(adir, resultsall));
                }
            }
           
            return al;
        }

    }
}

其中关于应该有系统文件的检查,还有用户不可访问系统文件夹的判断,但是这个项目中用不上,又不想用try块儿影响效率。

还是递归的思想!



收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表