如何让我的C#代码检查目录中的每个文件

本文关键字:文件 检查 我的 代码 | 更新日期: 2023-09-27 18:04:50

可能重复:
如何读取特定文件夹中的所有文件

我有以下代码,我想出:

string[] lines = System.IO.File.ReadAllLines(@"C:'Notes'Variables1.txt");
foreach (string line in lines)
{
   process(line);
}
string[] lines = System.IO.File.ReadAllLines(@"C:'Notes'test1.txt");
foreach (string line in lines)
{
   process(line);
}

有没有一种简单可靠的方法可以修改代码,使其查找Notes目录中的所有.txt文件,然后依次读取每个文件。通过某种方式,我可以编写代码,而不必依次指定每个文件,如果文件为空,则不会崩溃。

如何让我的C#代码检查目录中的每个文件

string[] files = Directory.GetFiles(source, "*.txt");
foreach(string filename in files) 
{
   //go do something with the file
}

使用DirectoryInfo类获取所有文件的列表。

Is有一个重载的EnumerateFiles方法,仅用于此。

您可以使用directory获取任何给定目录中的文件集合。GetFiles((。然后像你已经在做的那样一个接一个地处理它们。

string[] files = Directory.GetFiles(@"C:'Notes", "*.txt", SearchOption.TopDirectoryOnly);
foreach(string file in files)
{
    string[] lines = File.ReadAllLines(file);
    foreach (string line in lines)
    {
        process(line);
    }        
}

系统中还有很多。IO命名空间。

使用System.IO.Directory.ReadFiles

例如:

string[] filePaths = Directory.GetFiles(@"c:'Notes'", "*.txt")

然后简单地遍历文件路径

您想要:

Directory.GetFiles(path, "*.txt");

这将返回一个名称数组,这样您就可以依次循环遍历每个文件:

foreach (string file in Directory.GetFiles(path, "*.txt"))
{
    string[] lines = System.IO.File.ReadAllLines(file);
    foreach (string line in lines)
    {
        process(line);
    }
}
string[] files = Directory.GetFiles(directory);
foreach(string filename in files)
{
   if (Path.GetExtension(filename) != ".txt")
      continue;
   string[] lines = System.IO.File.ReadAllLines(filename);
   foreach (string line in lines)
   {
      process(line);
   }
}