c# 遍历获取所有文件的示例代码

针对“c# 遍历获取所有文件的示例代码”的完整攻略,我将通过以下几个步骤详细说明。

1. 确定遍历目标

在编写代码之前,需要先明确需要遍历的目标文件夹。可以通过以下方式获取目标文件夹路径,此处以桌面为例:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);  
string targetPath = Path.Combine(desktopPath, "targetFolder");  

上述代码首先获取了用户桌面目录,然后利用 Path 类的 Combine 方法拼接出目标文件夹路径。

2. 获取目标文件夹下所有文件

在获取文件列表之前,需要判断目标文件夹是否存在,否则就无法完成遍历操作,代码如下:

if (!Directory.Exists(targetPath))  
{  
    Console.WriteLine("文件夹不存在,请检查路径!");  
    // 在此处可以抛出异常进行处理,代码略  
}

如果目标文件夹存在,那么可以使用 Directory.GetFiles 方法获取文件列表,如下所示:

var files = Directory.GetFiles(targetPath, "*.*", SearchOption.AllDirectories);  
foreach (var fileName in files)  
{  
    Console.WriteLine(fileName);  
}

其中,*.* 参数表示获取目标文件夹下所有类型的文件,SearchOption.AllDirectories 则表示在子目录中继续搜索,遍历整个目录树。最后利用 foreach 循环遍历文件列表,并将每个文件名输出到控制台上。

示例说明

以上就是获取目标文件夹下所有文件的示例代码,通过以上代码可以获取目标文件夹下所有文件的路径信息。如果想进一步操作这些文件,可以针对 fileName 所表示的文件路径进行相应的操作。

下面给出两个具体的使用示例。

示例1:统计文件类型个数

假设现在需要统计目标文件夹下所有类型文件的个数,可以通过以下代码实现:

Dictionary<string, int> dict = new Dictionary<string, int>();  
foreach (var file in files)  
{  
    string ext = Path.GetExtension(file);  
    if (dict.ContainsKey(ext))  
    {  
        dict[ext]++;  
    }  
    else  
    {  
        dict[ext] = 1;  
    }  
}

foreach (var item in dict)  
{  
    Console.WriteLine("{0}类型共有{1}个文件", item.Key, item.Value);  
}

以上代码定义了一个 Dictionary 对象,用于存储各个文件类型的数量,然后在遍历文件列表时,从每个文件的路径中提取出文件扩展名,并根据扩展名判断是否在 Dictionary 对象中已经存在,如果存在就把对应的计数器加1,否则就新建计数器并赋初值1。最后遍历 Dictionary 对象,输出每个文件类型对应的文件数量。

示例2:复制目标文件夹下所有图片文件

假设现在需要将目标文件夹下所有的图片文件复制到另一个目录中,可以通过以下代码实现:

string destPath = Path.Combine(desktopPath, "copyFolder");
if (!Directory.Exists(destPath))
{
    Directory.CreateDirectory(destPath);
}

foreach (var file in files)
{
    string ext = Path.GetExtension(file);
    if (ext.Equals(".jpg") || ext.Equals(".png") || ext.Equals(".bmp"))
    {
        string destFile = Path.Combine(destPath, Path.GetFileName(file));
        File.Copy(file, destFile, true);
    }
}

以上代码首先判断目标文件夹是否已经存在,如果不存在就创建一个新的文件夹。然后遍历文件列表,判断每个文件是否属于图片文件(这里假设 .jpg.png.bmp 文件都是图片文件),如果是就将该文件复制到目标文件夹下。这里调用了 File.Copy 方法进行文件复制,其中 true 表示如果目标文件夹下已经存在同名文件,就覆盖原文件。通过上述操作,就可以将目标文件夹下的所有图片文件复制到新的文件夹中。

以上就是两个具体的示例说明,具体操作根据需求进行调整即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# 遍历获取所有文件的示例代码 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#各种异常处理方式总结

    C#各种异常处理方式总结 什么是异常? 异常是指在程序运行过程中遇到的错误或情况,可以是处理到了程序正常运行范围之外的数据输入或其他问题。 异常处理的意义 在编写程序时,我们需要预先考虑到可能出现的异常情况,以规避程序崩溃或数据丢失等问题。异常处理可以帮助我们及时捕获异常并进行处理,避免程序崩溃或数据不完整。 异常处理方式 C#提供了多种异常处理方式,包括使…

    C# 2023年5月15日
    00
  • C# char[]与string byte[]与string之间的转换详解

    C# char[]与string 在C#中,char[]与string之间的转换可以通过以下方法实现: char[]转string 可以调用string构造函数,传入char[]即可: char[] chars = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ }; string str = new string(chars); 上面的代码会将char…

    C# 2023年6月8日
    00
  • Linq中ToList()和CopyToDataTable()用法详解

    Linq中ToList()和CopyToDataTable()用法详解 在使用Linq进行数据查询时,我们经常需要将结果转换成List或DataTable类型以便于读取或处理。这时就可以使用Linq提供的ToList()和CopyToDataTable()方法。 ToList()方法 ToList()方法可以将查询结果转换为List集合类型,方便后续的操作。…

    C# 2023年5月15日
    00
  • Vs2022环境下安装低版本.net framework的实现步骤

    下面是详细的“Vs2022环境下安装低版本.net framework的实现步骤”的攻略。 环境准备 首先,我们需要准备好以下一些环境: Visual Studio 2022 低版本的 .NET Framework 安装包(例如 .NET Framework 3.5) 安装低版本的 .NET Framework 在 Windows 系统中,打开“控制面板”,…

    C# 2023年6月3日
    00
  • ASP.NET Core MVC 从入门到精通之Razor语法

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启…

    C# 2023年4月27日
    00
  • C#实现组合排列的方法

    我们知道,组合和排列是组合数学中的两个基本概念。这两个概念经常会在编程中用到,因此在C#中实现它们是非常必要的。 什么是组合? 组合是从n个元素中取出m个元素(m<=n),不考虑元素的顺序,这样的m元组的个数叫做从n个不同元素中取出m个元素的组合数。 组合数的计算公式为C(n,m) = n!/(m! * (n-m)!)。 什么是排列? 排列是从n个元素…

    C# 2023年6月6日
    00
  • SQL基础查询和LINQ集成化查询

    SQL基础查询和LINQ集成化查询完整攻略 SQL基础查询 SQL是一种用于管理关系型数据库的语言,用于从数据库中检索和管理数据。SQL查询是日常工作中最常见的SQL活动。以下是一个简单的SQL查询过程: 打开SQL编辑器,并连接到关系型数据库 粘贴或输入SQL查询语句 运行查询语句 解释结果 以下是一个具体的SQL查询示例,假设我们有一个名为“books”…

    C# 2023年6月1日
    00
  • C#图表算法之无向图

    C#图表算法之无向图 什么是无向图 无向图是图的一种,其中边没有方向。也就是说,图中的节点之间的关系是没有顺序的,就像两个人之间的友谊关系不分先后。 在 C# 中,我们可以使用 Dictionary<T1, List<T2>> 来表示一个无向图。其中 T1 表示节点,T2 表示节点和它相邻的节点组成的列表。 构建无向图 下面是一个构建…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部