c# - 如何循环遍历目录C#中的所有文本文件

标签 c# .net ssis

这段代码从 1.txt 中取出一行并将其拆分成列。现在我有一个包含 200 多个文件并以 something.txt 结尾的目录,我希望它们一次都打开一个,然后运行下面的这个过程。在不过多更改我的代码的情况下遍历所有文件的最简单方法是什么?

当前代码片段;

    string _nextLine;
    string[] _columns;
    char[] delimiters;


    delimiters = "|".ToCharArray();


    _nextLine = _reader.ReadLine();

    string[] lines = File.ReadAllLines("C:\\P\\DataSource2_W\\TextFiles\\Batch1\\1.txt");


    //Start at index 2 - and keep looping until index Length - 2 
    for (int i = 3; i < lines.Length - 2; i++) 
    {     _columns = lines[i].Split('|');    

        // Check if number of cols is 3
    if (_columns.Length == 146)
    {

        JazzORBuffer.AddRow();
        JazzORBuffer.Server = _columns[0];
        JazzORBuffer.Country = _columns[1];
        JazzORBuffer.QuoteNumber = _columns[2];
        JazzORBuffer.DocumentName =_columns[3];
        JazzORBuffer.CompanyNameSoldTo=_columns[4];


    }   

         else
{
    // Debug or messagebox the line that fails
    MessageBox.Show("Cols:" + _columns.Length.ToString() + " Line: " + lines[i]);
    return;

}


    } 

最佳答案

您可以简单地使用 Directory.EnumerateFiles()遍历指定目录的文件集合。

因此您可以将代码插入到 foreach 循环中,例如:

foreach (var file in 
  Directory.EnumerateFiles(@"C:\\P\\DataSource2_W\\TextFiles\\Batch1", "*.txt"))
{

  //your code
}

关于c# - 如何循环遍历目录C#中的所有文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10616126/

相关文章:

c# - 从暂停菜单退出以从标题屏幕重新启动 C#

c# - 使用 LINQ 优化两个列表中的比较

sql-server-2008 - 自定义 SSIS 任务 - 版本属性

.net - 团队正在从 XP32 到 XP64 进行 .NET 开发 - 有什么问题吗?

mysql - 无法从 MySQL 导入表

ssis - 在 SSIS 中将文件从文件夹移动到另一个文件夹

c# - 无法从 appSettings 读取

c# - Azure Functions DbContext 请求延迟 - 在启动时连接到数据库?

c# - 将参数传递给先前启动的程序实例

C# string.GetHashCode() 返回非 int 结果