程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#實現目標路徑下文件遞歸的類

C#實現目標路徑下文件遞歸的類

編輯:關於C語言

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塊兒影響效率。

還是遞歸的思想!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved