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

C# 如何使用csvhelper读取文件夹中的多个csv文件,c#,csv,mapping,csvhelper,C#,Csv,Mapping,Csvhelper,如何读取文件夹中的多个csv文件? 我有一个程序,可以使用csvhelper库将csv文件映射为正确的格式。这是我的代码: static void Main() { var filePath=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),“test.csv”); var tempFilePath=Path.GetTempFileName(); 使用(var reader=newstreamr

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


static void Main()
{
var filePath=Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),“test.csv”);
var tempFilePath=Path.GetTempFileName(); 使用(var reader=newstreamreader(filePath)) 使用(var csvReader=新csvReader(读卡器)) 使用(var writer=newstreamwriter(tempFilePath)) 使用(var csvWriter=新的csvWriter(writer)) { csvReader.Configuration.RegisterClassMap(); csvWriter.Configuration.RegisterClassMap(); csvReader.Configuration.Delimiter=“,”; var records=csvReader.GetRecords(); csvReader.Configuration.prepareHeadePerformatch=标题=> { var newHeader=Regex.Replace(header,@“\s”,string.Empty); newHeader=newHeader.Trim(); newHeader=newHeader.ToLower(); 返回newHeader; }; CSV编写者编写记录(记录); } File.Delete(文件路径); Move(tempFilePath,filePath); }
由于这是一项家庭作业(和/或您似乎对编码不太熟悉),我将给您一个非常合适的答案,在您阅读提供的文档和示例时,它将带给您许多小时的乐趣和兴奋

你需要

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

搜索模式

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

foreach语句执行一条语句或语句块 对于实现 System.Collections.IEnumerable或 System.Collections.Generic.IEnumerable接口

细节由你决定

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);
    }