如何使用StreamReader处理文件目录中的所有CSV文件?

问题描述

我有一个C#程序,需要处理CSV文件。当我仅指定一个文件时,我的程序运行良好,但是我尝试将其更改为处理指定文件目录中的所有CSV文件,并且该程序不再正常工作。它拾取文件,但不读取它们。这是我要使用的基本结构:

string[] filePaths = Directory.GetFiles(@"C:\Users\XXXXX\Documents\","*.csv");

    foreach (var file in filePaths)
    {
        StreamReader streamReader = new StreamReader(file);

        try
        {
             while (!streamReader.EndOfStream)
             {
                 string[] totalData = new string[System.IO.File.ReadAllLines(file).Length];
             }
        }
    }

解决方法

您的while循环将永远运行,因为您根本没有推进StreamReader实例。您实际上并没有使用StreamReader进行任何操作。

如果只想一次读取所有文本,则可以使用File.ReadAllLines而不使用StreamReader。

如果要一次一行读取文件,请使用StreamReader。

此外,如果您确实使用StreamReader,则应将其与“ using”结合使用,以确保完成后将其丢弃。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...