C# 程序获取目录中存在的所有文件

c# 程序获取目录中存在的所有文件

Introduction

On the computer, we can store files in a directory, also known as a folder. A directory also contains shortcuts to other directories and files. If we want to know what all files have stored in a directory then C# also offers an easy way to do so. In this article, we will be learning a C# program to get all files present in a directory.

There are more than a couple of ways to know the files available in the directory. Let us discuss them in the upcoming sections.

1. GetFiles() 方法

为了知道指定目录中存在的文件的名称,我们使用GetFiles()方法。

public static string[] GetFiles (string path); 

We can use GetFiles() and GetDirectories() to know the files and subdirectories in the specified directory.

其参数即目录的绝对或相对路径是一个字符串。并且它是大小写不敏感的。此函数返回一个包含指定目录中文件名及其路径的列表的数组。当目录为空时,也会返回一个空数组。

算法

现在,让我们讨论使用GetFiles()方法获取目录中所有文件的算法。

第一步 – 首先,我们声明一个字符串来存储目录的地址。

Step 2 − We get the list of the files by using GetFiles() and store it in an array named fyles.

Step 3 − Finally, we print the list of files.

Example

using System;using System.IO;public class Example {   public static void Main() {      string directloc = @"D:mypcaddre";      // files list from the root directory and prints it      string[] fyles = Directory.GetFiles(directloc);      Console.WriteLine(String.Join(Environment.NewLine, fyles));   }}

输出

abrew.txtzuma.txt

Now, to get the details of the types of files that are present in the root directory i.e., the directory we are searching and its subfolders then we use the ‘*’ pattern and SearchOption.AllDirectories which retrieve the multiple types of files available in the directory and its subdirectories.

Algorithm for SearchOption.AllDirectories

Now, let’s discuss the algorithm to get all the files present in a directory and its subdirectories using SearchOption.AllDirectories method.

步骤 1 − 首先,我们声明一个字符串来存储目录的地址。

Step 2 − We get the list of the files in the directory and its subdirectories by using SearchOption.AllDirectories and store it in an array named fyles.

Step 3 − Finally, we print the list of files.

Example

using System;using System.IO;public class Example {   public static void Main() {      string directloc = @"D:mypcaddre";      // files list from the root directory and its subdirectories and prints it      string[] fyles = Directory.GetFiles(directloc, "*", SearchOption.AllDirectories);      Console.WriteLine(String.Join(Environment.NewLine, fyles));   }} 

输出

abrew.txtzuma.txt

所以,通过使用GetFiles()方法,我们可以了解目录及其子目录中的文件。现在,我们转向下一节,讨论EnumerateFiles方法以了解目录及其子目录中的文件。

2. EnumerateFiles方法

From the method’s name, we can say that this is an enumerable collection returning method. So, this method returns an enumerable collection of complete file names in a given directory that matches the user-defined search and additionally explores folders.

public static System.Collections.Generic.IEnumerable EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption); 

在这里,searchOption是一个参数,它指示搜索是否应该仅包括当前路径或所有子目录。searchPattern是与用户定义路径中文件名匹配的搜索字符串。它可以包含有效的文字路径和通配符(*和?),但不支持正则表达式。

算法

Now, let’s discuss the algorithm to get all the files present in a directory using Directory.EnumerateFiles() method.

步骤 1 − 首先,我们声明一个字符串来存储目录的地址。

第二步 − 我们通过使用Directory.EnumerateFiles(directloc, “*”, SearchOption.AllDirectories)获取目录及其子目录中的文件列表,并将其存储在名为fyles的变量中。

Step 3 − Finally, we print the list of files.

Example

using System;using System.IO;using System.Collections.Generic;public class Example {   public static void Main() {      string directloc = @"D:mypcaddre";      // files list from the root directory and its subdirectories and prints it      var fyles = Directory.EnumerateFiles(directloc, "*", SearchOption.AllDirectories);      Console.WriteLine(String.Join(Environment.NewLine, fyles));    }} 

输出

abrew.txtzuma.txt

在这个方法中,searchPattern非常重要,因为它是通配符和字面字符的混合。它不允许使用正则表达式。以下是通配符和它们的匹配项。

Wildcard Specifier

Matches

的中文翻译为:

匹配

*(星号)

Zero or more characters in that position

?(question mark)

Exactly one character in that position

If we use ‘*o’ then each file name is checked to end with o. And if we use ‘a*’ then each file name is checked to start with a. Also when the asterisk wildcard character is used in searchPattern and the name of a three-character file extension, such as “*.txt,” this returns files with extensions that have with the stated extension. Now, let’s see another method.

3. Directory.GetFileSystemEntries() Method

This method returns the names of all files and subdirectories that meet the conditions given by the programmer. The syntax for this method is as follows.

public static string[] GetFileSystemEntries (string path); 

另一个选择是利用 Directory。GetFileSystemEntries() 方法检索提供路径中所有文件和子目录的名称。它可以使用搜索模式和搜索选项进行重载。当提供了搜索模式时,该方法将其与路径中的文件和文件夹名称进行比较。如果使用了 SearchOption.AllDirectories 选项,它将搜索所有子目录。

Algorithm

现在,让我们讨论使用 Directory.GetFileSystemEntries() 方法获取目录中所有文件的算法。

步骤 1 − 首先,我们声明一个字符串来存储目录的地址。

第二步 − 通过使用Directory.GetFileSystemEntries(rootdir, “*”, SearchOption.AllDirectories)获取目录及其子目录中的文件列表,并将其存储在一个数组中。

Step 3 − Finally, we print the list of files.

Example

using System;using System.IO;public class Example {   public static void Main() {      string directloc = @"D:mypcaddre";            // files list from the root directory and its subdirectories and prints it      string[] fyles = Directory.GetFileSystemEntries(directloc, "*", SearchOption.AllDirectories);      Console.WriteLine(String.Join(Environment.NewLine, fyles));   }} 

输出

abrew.txtzuma.txt

Conclusion

所以,这篇文章就到这里了。在这篇文章中,我们学习了如何编写一个C#程序来获取目录中的所有文件。我们讨论了不同的方法来实现这个目标。我们还了解了这些方法的算法,并学习了它们的代码。希望这篇文章能够增加你对C#的知识。

以上就是C# 程序获取目录中存在的所有文件的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1435056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何从 C# 中的 DateTime 对象中仅获取日期部分?
上一篇 2025年12月17日 10:35:55
如何在 C# 方法中使用 param 数组传递参数?
下一篇 2025年12月17日 10:36:39

相关推荐

  • 京东保价物品损坏如何赔付?快递全额保如何使用?保价物品损坏赔付规则在此!

    在网购与寄送过程中,商品破损或遗失是许多消费者最为担忧的问题之一。作为国内头部电商平台,京东推出的保价政策与快递全额保服务为用户提供了强有力的售后保障。本文将深入解读京东保价物品损坏的赔偿机制、全额保的具体操作方式,以及未选择保价时的应对策略,帮助您全面了解并维护自身权益。 一、京东保价物品损坏赔付…

    2026年9月11日
    100
  • YII框架的Fixture是什么?YII框架如何使用测试数据?

    使用Yii2 Fixture进行高效数据库测试需先定义继承自ActiveFixture的类并指定模型与数据文件,再在测试类中通过_fixtures()方法加载;可利用依赖关系、Faker库生成数据、命令行工具及全局配置提升灵活性;需注意数据库连接、加载顺序、数据冲突、性能和事务问题以确保测试稳定。 …

    2026年9月11日
    000
  • 小红书搜索不到笔记内容怎么办 小红书笔记搜索优化与操作方法

    先检查笔记是否被限流或屏蔽,查看数据中心数据、他人搜索结果及薯条投放情况,确认后处理违规内容并提交申诉,同时排除设备与网络问题,等待审核恢复。 小红书笔记搜不到,先别着急。大概率是内容审核、账号状态或技术问题导致的。直接按步骤排查,能快速定位原因并恢复。 检查笔记是否被限流或屏蔽 如果别人搜不到你的…

    2026年9月11日
    200
  • 微信三大更新放出!网友:有救了

    群聊消息刷屏、撤回消息手忙脚乱、手机存储空间告急?别担心,你的救星来了!微信最近悄然上线了三项灰度测试新功能,旨在解决这些日常烦恼,让你的微信体验焕然一新。 群聊免打扰终极进化,一键实现真静音! 1、原先的“关注的群成员”功能已经下线,取而代之的是更加直观的“以下消息仍通知”选项,让设置更加清晰明了…

    2026年9月11日
    000
  • 《全境封锁3》开发团队正在重组 官方招募主动离职者

    育碧旗下多个工作室近期接连迎来调整,其中负责《全境封锁3》开发的Massive Entertainment工作室正经历一次大规模内部重组。目前该工作室已启动自愿离职计划,向员工提供优厚补偿以鼓励主动退出,相关举措旨在优化团队结构与资源配置。 尽管正在进行人员调整,官方仍明确表示将继续全力推进《全境封…

    2026年9月11日
    100
  • 如何在docker中配置mysql网络访问权限

    要实现外部访问Docker中MySQL需四步:1. 启动容器时用-p映射3306端口;2. 创建或修改用户权限允许’%’远程登录;3. 确保bind-address设为0.0.0.0;4. 开放宿主机防火墙及云安全组规则。 在 Docker 中运行 MySQL 时,默认情况下…

    2026年9月11日
    000
  • 红米最强标准版!REDMI K90外观跟K90 Pro Max不一样

    10月20日,redmi产品负责人笋寸在与用户的互动中透露,redmi k90标准版的外观设计将区别于pro max版本,后续会针对其外观进行独立预热。 据了解,REDMI K90标准版将搭载高通骁龙8至尊版芯片,成为REDMI历史上性能最强的标准版机型。该机还将配备2K分辨率直屏,在屏幕素质、性能…

    2026年9月11日
    000
  • YII框架的审计日志是什么?YII框架如何记录操作日志?

    审计日志聚焦关键操作与数据变更,确保可追溯与合规,操作日志涵盖系统运行全貌,用于监控与诊断;二者均通过Yii日志组件实现,利用Yii::info()等方法记录,配置FileTarget或DbTarget指定存储位置与级别,并通过categories区分日志类型;为保障审计日志完整性与安全性,需将日志…

    2026年9月11日
    100
  • 《银河战士Prime4》新广告片段泄露 展示新Boss战

    近日,两段为任天堂switch2打造的广告视频在网络上意外曝光,其中首次披露了即将推出的《银河战士prime 4:超越》的全新游戏画面。 广告片段: 这两支广告时长均为15秒,主要目的是为即将发布的Switch2主机预热造势,而非专注于介绍游戏本身。尽管如此,视频中仍短暂展示了《银河战士Prime …

    2026年9月11日
    100
  • 我是如何学习Android源码的

    大家好,又见面了,我是你们的老朋友全栈君。 连续很长一段时间(从2017年6月9日到2017年6月26日),我一直在研究蓝牙技术,这还不包括撰写和整理文章的时间。不知不觉中,这段研究已经持续了这么久……我已经写了三篇关于蓝牙的长篇博客,如下所示: 在这里就不放文章链接了,有需要的可以在我的文章中搜索…

    2026年9月11日
    100
  • 淘宝礼金券在哪领?使用规则?隐藏券省110元!淘宝礼金券领取全攻略,1分钟学会叠加省钱!

    在淘宝购物时,礼金券作为平台与商家联合推出的优惠工具,每年帮助消费者节省超百亿元支出。然而,仍有超过40%的用户因不了解领取方式而错失福利,更有35%的订单因未正确使用礼金券导致多花冤枉钱。本文将全面解读淘宝礼金券的获取途径和使用规则,助你掌握“领券—用券—售后”全流程操作技巧。 一、淘宝礼金券领取…

    2026年9月11日
    100
  • VSCode的全局搜索怎么用?

    使用快捷键Ctrl+Shift+F(macOS为Cmd+Shift+F)或点击“放大镜”图标打开全局搜索,输入关键词可实时查看匹配项。2. 支持正则表达式和大小写区分,可通过勾选.和Aa按钮设置。3. 在文件筛选框输入.js、src/**等条件可缩小搜索范围,多个条件用逗号分隔。4. 展开下方替换区…

    2026年9月11日
    000
  • Java中如何使用ReentrantLock的Condition实现线程等待

    ReentrantLock结合Condition可实现线程精确通信,通过newCondition()创建条件对象,await()使线程等待并释放锁,signal()/signalAll()唤醒等待线程,须在持有锁时调用且配合try-finally确保解锁。 在Java中,ReentrantLock …

    2026年9月11日
    000
  • Linux如何使用curl命令测试接口请求

    curl是Linux下测试HTTP接口的命令行工具,支持多种协议和请求类型。1. 基本语法为curl [选项] [URL],常用选项包括-X指定方法、-H添加请求头、-d发送数据、-i显示响应头、-v调试模式、–data-urlencode进行URL编码。2. GET请求用于获取数据,可…

    2026年9月11日
    000
  • windows10如何禁止某个特定程序的网络连接_windows10程序网络访问限制方法

    通过Windows防火墙创建出站规则可阻止特定程序联网,依次进入控制面板→系统和安全→Windows Defender防火墙→高级设置→出站规则→新建规则,选择程序路径并设置阻止连接,适用于所有网络配置文件,完成命名即可生效。 如果您希望阻止Windows 10上的某个特定程序访问互联网,以保护隐私…

    2026年9月11日
    000
  • 如何在mysql中迁移数据库到新服务器

    先使用mysqldump备份原数据库并传输文件至新服务器,再在新服务器上通过mysql命令导入数据。具体步骤:1. 用mysqldump导出单库或全库(含存储过程、触发器及事务一致性);2. 使用scp等工具将.sql文件传到新服务器;3. 新服务器安装MySQL并启动服务,创建对应数据库后,执行m…

    2026年9月11日
    000
  • vivo浏览器下载速度慢怎么解决_vivo浏览器加快下载速度技巧

    下载慢因网络、缓存或设置问题,可优化网络、开启下载加速、清理缓存、调整安全设置、用第三方工具或换DNS解决。 如果您在使用vivo浏览器下载文件时遇到速度缓慢的问题,可能是由于网络状况不佳、浏览器缓存过多或相关设置未优化所致。以下是解决此问题的具体方法: 本文运行环境:vivo X100 Pro,A…

    2026年9月11日
    000
  • 反对小岛秀夫!《寂静岭f》制作人称AI无法创新

    近期,关于人工智能在游戏开发中应用的讨论愈发激烈。此前,著名游戏制作人小岛秀夫提出可利用AI技术推进游戏续作与重制版本的开发,这一观点迅速引发业界热议。对此,《寂静岭》系列核心成员冈本基近日作出回应,明确表达了不同看法,认为AI难以胜任如《寂静岭f》这类高度依赖原创性的项目。 冈本基表示,他尊重小岛…

    2026年9月11日
    000
  • 冯巩之子下定智界R7!智界R7改写年轻座驾定义

    冯巩之子下定智界R7!智界R7改写年轻座驾定义冯巩之子下定智界R7!智界R7改写年轻座驾定义冯巩之子下定智界R7!智界R7改写年轻座驾定义冯巩之子下定智界R7!智界R7改写年轻座驾定义

    近日,中国著名喜剧演员冯巩之子订购新款智界r7的消息引发热议,与李连杰为女儿提车等事件一同掀起了一股“星二代”青睐智界r7的热潮。这一趋势背后,是智界r7深刻洞察新时代年轻用户的出行理念,并以精准回应赢得追求品质与个性表达的年轻群体、尤其是星二代们的主动选择,成为他们心中当之无愧的“严选座驾”。凭借…

    2026年9月11日 用户投稿
    100
  • 挑战最强标准版!真我GT8官宣 Pro同款理光GR影像系统

    10月20日,真我realme副总裁、全球营销总裁及中国区总裁徐起透露,真我gt8将冲击最强标准版旗舰新高度,首次引入pro版本同款理光gr影像系统,涵盖pro级理光gr五大经典影调、pro同款防眩光主摄,让标准版也拥有原厂级理光gr摄影韵味。 据悉,真我GT8完整复刻了理光GR标志性的五大胶片影调…

    2026年9月11日
    000

发表回复

登录后才能评论
关注微信