在 C# 中获取目录中的所有文件名

Muhammad Maisam Abbas 2024年2月16日
  1. 使用 C# 中的 Directory.GetFiles() 方法获取目录中的所有文件名
  2. 在 C# 中使用 DirectoryInfo.GetFiles() 方法获取目录中的所有文件名
在 C# 中获取目录中的所有文件名

本教程将讨论获取 C# 中特定目录内所有文件的文件名的方法。

使用 C# 中的 Directory.GetFiles() 方法获取目录中的所有文件名

C# 中的 Directory.GetFiles() 方法获取特定目录中所有文件的名称。Directory.GetFiles() 方法返回一个字符串数组,其中包含方法参数中指定的目录内所有文件的绝对路径。请参见以下示例。

using System;
using System.IO;

namespace get_all_files {
  class Program {
    static void Main(string[] args) {
      string[] files = Directory.GetFiles(@"C:\File", "*.txt");
      foreach (var file in files) {
        Console.WriteLine(file);
      }
    }
  }
}

输出:

C:\File\file.txt
C:\File\file1.txt

在上面的代码中,我们使用 C# 中的 Directory.GetFiles() 方法提取了目录 C:\File 中带有 .txt 扩展名的所有文件的名称。

Directory.GetFiles() 方法可用于多种目的。例如,以下代码示例为我们提供了所有文件的名称,无论它们在 C# 中的文件扩展名如何。

using System;
using System.IO;

namespace get_all_files {
  class Program {
    static void Main(string[] args) {
      string[] files = Directory.GetFiles(@"C:\File");
      foreach (var file in files) {
        Console.WriteLine(file);
      }
    }
  }
}

输出:

C:\File\file.txt
C:\File\file1.txt
C:\File\readme.md

我们还可以使用 Directory.GetFiles() 方法获取任何子目录中包含的所有文件的文件名。请参见以下示例。

using System;
using System.IO;

namespace get_all_files {
  class Program {
    static void Main(string[] args) {
      string[] files = Directory.GetFiles(@"C:\File", "*.txt", SearchOption.AllDirectories);
      foreach (var file in files) {
        Console.WriteLine(file);
      }
    }
  }
}

输出:

C:\File\file.txt
C:\File\file1.txt
C:\File\subFile\file3.txt
C:\File\subFile\file4.txt

在上面的代码中,我们在 C# 中使用 Directory.GetFiles() 方法提取了 C:\File 目录的所有子目录中所有带有 .txt 扩展名的文件的文件名。

在 C# 中使用 DirectoryInfo.GetFiles() 方法获取目录中的所有文件名

DirectoryInfo.GetFiles() 方法获取 C# 中指定目录内的文件。DirectoryInfo.GetFiles() 方法返回 FileInfo 类对象的数组,其中包含有关方法参数内指定的目录中所有文件的信息。我们可以使用 FileInfo.Name 属性获得文件的名称。以下代码示例向我们展示了如何使用 C# 中的 DirectoryInfo.GetFiles() 方法获取指定目录内文件的文件名。

using System;
using System.IO;

namespace get_all_files {
  class Program {
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\File");
      FileInfo[] files = di.GetFiles("*.txt");
      string str = "";
      foreach (FileInfo file in files) {
        Console.WriteLine(file.Name);
      }
    }
  }
}

输出:

file.txt
file1.txt

在上面的代码中,我们使用 C# 中的 DirectoryInfo.GetFiles() 方法提取了 C:\File 目录中所有带有 .txt 扩展名的文件的文件名。我们还可以使用 DirectoryInfo.GetFiles() 方法中的 SearchOption.AllDirectories 参数来获取所有子目录中所有文件的名称。同时,我们也可以通过在 DirectoryInfo.GetFiles() 方法中不指定任何文件扩展名来获得所有文件名,而不管文件扩展名如何。以前的方法与该方法之间的唯一区别是,Directory.GetFiles() 方法为我们提供了文件的完整绝对路径。相反,DirectoryInfo.GetFiles() 方法仅为我们提供所有文件的名称。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp File