小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

net中c#教程 如何递归获取文件夹所有文件?

2022年10月12日 1285点热度 0人点赞 0条评论

上一篇的博客中,我们讲解了File类的常用操作,今天这篇分享一个完整的类,作用是递归获取某个文件夹中所有文件。直接看代码就行了,也不复杂

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NS.Core
{
    /// <summary>
    /// 文件夹操作帮助类
    /// </summary>
    public class DirectoryHelper
    {
        private static ArrayList directorysList = new ArrayList();      //存储目录列表数据
        private static ArrayList fileList = new ArrayList();            //存储文件路径列表

        public static ArrayList DirectorysList
        {
            get { return DirectoryHelper.directorysList; }
            set { DirectoryHelper.directorysList = value; }
        }
       
        public static ArrayList FileList
        {
            get { return DirectoryHelper.fileList; }
            set { DirectoryHelper.fileList = value; }
        }

        public static void InitDirectory()
        {
            //注:数据需初始化
            DirectoryHelper.DirectorysList = new ArrayList();
            DirectoryHelper.FileList = new ArrayList();
        }

        public static void GetDirectory(string sourcePath)
        {  
            //判断源文件夹是否存在
            if (Directory.Exists(sourcePath))
            {
                //获取源文件夹中的目录及文件路径,存入字符串
                string[] tmp = Directory.GetFileSystemEntries(sourcePath);

                //循环遍历
                for (int i = 0; i < tmp.Length; i++)
                {
                    //如果是文件则存入FileList
                    if (File.Exists(tmp[i]))
                    {
                        FileList.Add(tmp[i]);
                    }
                    else
                    {
                        //如果是最后一层目录则把其路径存入DirectorysList
                        if ((Directory.GetDirectories(tmp[i])).Length == 0)
                        {
                            DirectorysList.Add(tmp[i]);
                        }
                    }

                    //递归开始.......
                    GetDirectory(tmp[i]);
                }
            }
        }
    }
}

 

相关阅读

net中c#教程 file文件的常用操作

net中c#教程 Json字符串的常用操作

net中c#教程 DataTable的常用操作

net中c#教程 DateTime日期时间的常用操作

net中c#教程 list泛型的常用操作

net中c#教程 string字符串的常用操作

标签: c#教程 net教程 递归获取文件
最后更新:2022年10月15日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2