主页 > 编程资料 > C# >
发布时间:2015-09-26 作者:网络 阅读:269次

using System;
using System.IO;
using System.Collections;

namespace DSclub
{
    /**////


    /// DirList 的摘要说明。
    ///

    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块儿影响效率。

还是递归的思想!

关键字词: