首页 > 解决方案 > 如何使用 StreamReader 处理文件目录中的所有 CSV 文件?

问题描述

我有一个需要处理 CSV 文件的 C# 程序。当我只指定一个文件时,我的程序工作正常,但我试图将其更改为处理指定文件目录中的所有 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];
             }
        }
    }

标签: c#.netcsvstreamreader

解决方案


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

如果您只想一口气阅读所有文本,则可以使用 File.ReadAllLines 而不是使用 StreamReader。

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

此外,如果您确实使用了 StreamReader,则应将其与“使用”结合使用,以确保在您完成后将其处理掉。


推荐阅读