如何使用csvhelper读取文件夹中的多个csv文件

时间:2018-11-20 03:25:44

标签: c# csv mapping csvhelper

如何读取一个文件夹中的多个csv文件? 我有一个使用 csvhelper 库将csv文件映射为正确格式的程序。这是我的代码:


static void Main()
    {
        var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "test.csv");<br>
        var tempFilePath = Path.GetTempFileName();

        using (var reader = new StreamReader(filePath))
        using (var csvReader = new CsvReader(reader))
        using (var writer = new StreamWriter(tempFilePath))
        using (var csvWriter = new CsvWriter(writer))
        {
            csvReader.Configuration.RegisterClassMap<TestMapOld>();
            csvWriter.Configuration.RegisterClassMap<TestMapNew>();
            csvReader.Configuration.Delimiter = ",";

            var records = csvReader.GetRecords<Test>();

            csvReader.Configuration.PrepareHeaderForMatch = header =>
            {
                var newHeader = Regex.Replace(header, @"\s", string.Empty);
                newHeader = newHeader.Trim();
                newHeader = newHeader.ToLower();

                return newHeader;
            };
            csvWriter.WriteRecords(records);
        }

        File.Delete(filePath);
        File.Move(tempFilePath, filePath);
    }

1 个答案:

答案 0 :(得分:1)

由于这是家庭作业(和/或您似乎是编码新手),请病假时给您一个非常合适的答案,使您在阅读文档和其他内容时获得许多小时的乐趣和兴奋提供的样品

您需要

GetFiles(String, String)

  

返回与以下内容匹配的文件名(包括其路径):   指定目录中的指定搜索模式。

searchPattern

  

String与路径中文件名匹配的搜索字符串。   此参数可以包含有效文字路径和   通配符(*和?),但不支持常规字符   表达式。

foreach, in (C# reference)

  

foreach语句执行一个语句或语句块   对于实现该类型的实例中的每个元素   System.Collections.IEnumerable或   System.Collections.Generic.IEnumerable接口。

请让细节留给您。