📜  C# 程序从给定目录中获取文件列表(1)

📅  最后修改于: 2023-12-03 14:59:43.097000             🧑  作者: Mango

用C#程序从给定目录中获取文件列表

在C# 编程中,获取指定目录中的文件列表是一项非常常见的操作,本篇文章将向程序员展示如何使用C#编写一个简单的Console程序,来从指定的目录中获取文件列表。

使用System.IO命名空间获取文件列表

C# 的System.IO命名空间下提供了大量的操作文件和目录的类和方法。其中,获取指定目录中的文件列表最常使用的类是Directory,该类提供了GetFiles方法可以获取指定目录下的一组文件。

string[] files = Directory.GetFiles("指定目录");

上述代码将获取指定目录下的所有文件列表并返回一个字符串数组。

需要注意的是,GetFiles方法还支持传入一个searchPattern参数,该参数用于筛选指定扩展名的文件。

例如,以下代码将只获取以.txt结尾的文件列表:

string[] txtFiles = Directory.GetFiles("指定目录", "*.txt");
使用LINQ语句获取文件列表

除了使用Directory类获取文件列表,我们还可以使用LINQ语句来完成同样的任务。以下是一段使用LINQ语句获取指定目录下所有文件的代码:

var files = from file in new DirectoryInfo("指定目录").GetFiles()
            select file.FullName;

上述代码使用DirectoryInfo类获取指定目录中的所有文件,并使用LINQ语句将文件名转换为全路径后返回。

需要注意的是,上述代码只能获取指定目录中的所有文件,不包括子目录中的文件。如果需要获取子目录中的文件,可以使用以下代码:

var files = from file in new DirectoryInfo("指定目录").GetFiles("*", SearchOption.AllDirectories)
            select file.FullName;

上述代码中使用GetFiles方法的重载版本,并传入SearchOption.AllDirectories参数以递归地搜索子目录中的文件。

完整示例代码

以下是一个完整的使用Directory类获取指定目录中所有文本文件的Console程序:

using System;
using System.IO;

namespace GetFileListDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string[] txtFiles = Directory.GetFiles("指定目录", "*.txt");

                Console.WriteLine("所有文本文件:");
                foreach (string file in txtFiles)
                {
                    Console.WriteLine(file);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("获取文件列表时出错:" + ex.Message);
            }

            Console.ReadKey();
        }
    }
}
总结

获取指定目录下的文件列表是C#编程中常见的任务之一,本文介绍了使用Directory类和LINQ语句两种方式来实现该任务。根据实际情况选择合适的方式并注意异常处理,可以更为方便地完成文件操作。