首页 > 编程语言 >C# 返回文件夹及子目录

C# 返回文件夹及子目录

时间:2024-07-15 09:58:28浏览次数:13  
标签:files GetFiles di C# 子目录 DirectoryInfo 文件夹 FullName ref

     /// <summary>
     /// 返回文件夹及子目录的文件夹
     /// </summary>
     /// <param name="directory"></param>
     /// <param name="files"></param>
     public static void GetFiles(string directory, ref Dictionary<string, FileInfo> files)
     {
         DirectoryInfo di = new DirectoryInfo(directory);
         if (di.Exists)
         {
             foreach (FileInfo f in di.GetFiles())
             {
                 if (files.ContainsKey(f.FullName)) continue;
                 files.Add(f.FullName, f);
             }

             foreach (DirectoryInfo d in di.GetDirectories())
             {
                 GetFiles(d.FullName, ref files);
             }
         }
     }

     /// <summary>
     /// 返回指定类型的文
     /// </summary>
     /// <param name="directory"></param>
     /// <param name="extension"></param>
     /// <param name="files"></param>
     public static void GetFiles(string directory, string extension, ref Dictionary<string, FileInfo> files)
     {
         DirectoryInfo di = new DirectoryInfo(directory);
         if (di.Exists)
         {
             foreach (FileInfo f in di.GetFiles($"*{extension}"))
             {
                 if (files.ContainsKey(f.FullName)) continue;
                 files.Add(f.FullName, f);
             }

             foreach (DirectoryInfo d in di.GetDirectories())
             {
                 GetFiles(d.FullName, extension, ref files);
             }
         }
     }
//调用方式        
Dictionary<string,FileInfo> files = new Dictionary<string,FileInfo>(); GetFiles(AppContext.BaseDirectory,".jpg", ref files);

 

标签:files,GetFiles,di,C#,子目录,DirectoryInfo,文件夹,FullName,ref
From: https://www.cnblogs.com/rovedog/p/18302541

相关文章

  • nuxtjs2.x项目PC移动互相跳转
    1、在plugins目录下新建terminalToggle.js,写入以下代码(function(){letsUserAgent=navigator.userAgent.toLowerCase();letisIpad=sUserAgent.match(/ipad/i)=="ipad";letisIphoneOs=sUserAgent.match(/iphoneos/i)=="iphoneos";letis......
  • Mac 版 Excel 和 Windows 版 Excel的区别
    Excel是一款由微软公司开发的电子表格程序,广泛应用于数据处理、分析和可视化等领域。它提供了丰富的功能和工具,包括公式、函数、图表和数据透视表等,帮助用户高效地处理和管理大量数据。同时,Excel还支持与其他Office应用程序的集成,方便用户在不同软件之间进行数据交换和共享。Ma......
  • 【C++BFS算法】752 打开转盘锁
    本文涉及知识点C++BFS算法LeetCode752打开转盘锁你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字:‘0’,‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’。每个拨轮可以自由旋转:例如把‘9’变为‘0’,‘0’变为‘9’。每次旋转都只能旋......
  • 【NOI】C++数据结构入门之一维数组(一)数组基础
    文章目录前言一、概念1.导入2.数组2.1数组的创建2.2数组的使用二、例题讲解问题:1423-考试成绩的简单统计问题:1153-查找“支撑数”问题:1156-排除异形基因问题:1155-找找谁的身高超过全家的平均身高问题:1231-考试成绩的分布情况三、总结四、感谢前言在......
  • 使用Spring Security实现安全认证
    使用SpringSecurity实现安全认证大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在这篇文章中,我将详细介绍如何使用SpringSecurity实现安全认证。通过丰富的代码示例,帮助大家全面掌握SpringSecurity的核心功能和配置方法。1.SpringSecurity概述Spri......
  • 小车轮子测试(I2C)
    I2C总线是PHILIPS公司推出的一种在电子通信控制领域常用的串行通信总线,是一种简单、双向通信、二线制、同步的串行总线,具有连接线少、控制简单、通信速率高等优点。端口检测cd/devlsI2C读写操作使用i2cdetect命令检测i2c总线i2cdetect-l如果红色部分出现unknown,则大......
  • [WUSTCTF2020]level3
    拖入ida,是一个base64串,但是用工具还原不了猜测是密钥变了,此时看到了另一个函数,这个函数改变了base64密钥写个脚本给他运行一下,后面是改完的key和输出结果importbase64a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'b=list(a)foriinrange......
  • pytorch的expand函数
    PyTorch中的expand函数用于扩展张量的形状,使其在某些维度上“看起来”像被复制了多次,但实际上它不会复制数据,从而节省内存和计算资源。扩展后的张量共享原始张量的内存空间,因此原始张量和扩展后的张量是同一个数据的视图。以下是torch.expand函数的一些基本用法:1.扩展一维......
  • ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服
    系列目录ELKStack-Elasticsearch·搜索引擎·全文检索·部署应用·内部结构·倒排索引·服务接入ELKStack-Kibana(待续)ELKStack-Logstash(待续)ELKStack-Beats(待续)ELKStack-ApplicationPerformanceMonitoring(待续)本章基于:RHELinux......
  • Python中 `__pycache__` 文件夹是什么?
    引言当你编写一个独立的Python脚本时,目录结构看起来可能没什么特别。但随着项目逐渐变得复杂,你可能会倾向于将一些功能分离到其他模块或包中。这时,你可能会发现在源文件旁边,似乎毫无规律地,突然冒出一个__pycache__文件夹。project/│├──mathematics/│││├──......