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

yizhihongxing

针对“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日

相关文章

  • ASP.NET 谨用 async/await

    ASP.NET是一种在Web应用程序中使用的框架,其中包含了许多可用于编写可执行的应用程序代码的内置功能。其中一个特性是使用async/await异步编程模式。 Async/await允许在Web应用程序中执行耗时长的操作而不会阻塞线程。这是由于该方法异步执行,当操作执行完毕时,将使用已处理请求的线程调用回调。下面是使用async/await在ASP.NET…

    C# 2023年5月15日
    00
  • 列举ASP.NET页面之间传递值的几种方式

    ASP.NET页面之间传递值的几种方式: 1. 查询字符串(Query String) 这是最常见的一种方式,通过URL传递参数,例如: Response.Redirect("http://www.example.com/Page2.aspx?user_id=12345"); 在Page2.aspx页面中获取传递的参数: string u…

    C# 2023年6月3日
    00
  • .NET Core 3.0中WPF使用IOC的图文教程

    .NET Core 3.0中WPF使用IOC的图文教程 在本攻略中,我们将介绍如何在.NET Core 3.0中使用IOC容器来管理WPF应用程序中的依赖项,并提供两个示例说明。 准备工作 在使用IOC容器之前,我们需要完成以下准备工作: 安装.NET Core 3.0 SDK。 我们需要在本地计算机或服务器上安装.NET Core 3.0 SDK。可以从.…

    C# 2023年5月16日
    00
  • 简单掌握Windows中C#启动外部程序进程的方法

    下面我将详细介绍如何在Windows中使用C#启动外部程序进程的方法。 1. 引用命名空间 在使用C#启动外部程序进程前,需要先引用System.Diagnostics命名空间,该命名空间包含了一个名为Process的类,用于处理进程相关操作。 using System.Diagnostics; 2. 创建Process对象 创建Process对象是启动外部…

    C# 2023年6月7日
    00
  • C#中事件的继承实例分析

    关于C#中事件的继承实例分析的攻略,我将从以下几个方面进行详细讲解: C#事件的基础知识概述 C#中事件的继承实例分析的具体操作步骤 两个C#中事件继承实例的示例说明 1. C#事件的基础知识概述 在C#中,事件是一种特殊的委托,它允许类或对象在特定的时候产生通知或者响应。事件通常用于编写GUI应用程序、多线程程序以及其他需要交互的程序中。在C#中,事件定义…

    C# 2023年5月31日
    00
  • C#如何将Access中以时间段条件查询的数据添加到ListView中

    关于将Access中以时间段条件查询的数据添加到ListView中的攻略,我给您整理如下: 准备工作 首先,您需要在C#项目中引用Microsoft Office Interop Access库,以便能够进行对Access数据库的操作。具体引用方式为在项目中右键点击“引用”->“添加引用”->“COM”->“Microsoft Office…

    C# 2023年5月31日
    00
  • UnityWebRequest前后端交互实现过程解析

    UnityWebRequest前后端交互实现过程解析 UnityWebRequest是Unity中对网络请求的封装,它可以用来发送HTTP/HTTPS请求并获取响应,实现Unity与后端交互的过程。本文将详细讲解UnityWebRequest前后端交互实现过程,包括发送请求、处理响应、解析JSON等内容。 发送请求 首先,我们需要构造HTTP请求并发送给后端…

    C# 2023年6月1日
    00
  • C#实现大数字运算的实例代码

    C#实现大数字运算的实例代码攻略 什么是大数字运算 大数字运算是指对于超过计算机所能直接表示的数字,可以通过算法实现运算。在C#中,数字类型有限,当数字过大时,计算结果可能会溢出或者得出错误的结果。为了解决这种问题,需要用大数字运算方式来处理。 C#中的大数字运算 C#中提供了BigInteger结构和BigDecimal类,可以用于大数字运算。在进行大数字…

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