C# 代码 - 文件操作相关

本文介绍了如何在C#中通过Process类调用外部exe程序并传递参数,以及使用CsvHelper库进行CSV文件的读写操作,包括模型定义、文件操作示例和Nuget包的引用。
摘要由CSDN通过智能技术生成

1. 传参数调用外部exe程序

        /// <summary>
        /// 传参数调用外部exe程序
        /// </summary>
        /// <param name="exeFullPath"></param>
        /// <param name="param"></param>
        public void CallExe(string exeFullPath, string param)
        {
            //string exePath = "D:\\aaa\\bbb\\";
            //string exeFileName = "123.exe";
            //string exeFullPath = exePath + exeFileName;

            Process proexe = Process.Start(exeFullPath, param);
        }

2. CSV文件读写【需先Nuget安装CsvHelper库】

     代码:

//1.定义:

public class FileHelper
   {
      
      /// <summary>
      /// 将源数据写入csv文件
      /// </summary>
      /// <param name="csvFullPath"></param>
      /// <param name="sourceData"></param>
    public void WriteDataToCsv<T>(List<T> sourceData, bool hasHeader, string csvFullPath)
      {

         var cfg = new CsvConfiguration(CultureInfo.InvariantCulture)
         {
            HasHeaderRecord = hasHeader,
         };

         using (var writer = new StreamWriter(csvFullPath))
         using (var csv = new CsvWriter(writer, cfg))
         {
            csv.WriteRecords(sourceData);

         }
      }

      /// <summary>
      /// 读取csv文件
      /// </summary>
      /// <typeparam name="T"></typeparam>
      /// <param name="csvFullPath"></param>
      /// <param name="hasHeader"></param>
      /// <returns></returns>
      public List<T> ReadCsv<T>(string csvFullPath, bool hasHeader)
      {

         var cfg = new CsvConfiguration(CultureInfo.InvariantCulture)
         {
            HasHeaderRecord = hasHeader,
         };
         using (var reader = new StreamReader(csvFullPath, Encoding.UTF8))
         {
            using (var csv = new CsvReader(reader, cfg))
            {
               return csv.GetRecords<T>().ToList();
            }
         }

      }


   }

//model:

   public class Part
   {
      [CsvHelper.Configuration.Attributes.Name("编号")]
      public int Id { get; set; }

      [CsvHelper.Configuration.Attributes.Name("名称")]
      public string Name { get; set; }

      [CsvHelper.Configuration.Attributes.Name("描述")]
      public string Description { get; set; }
      
   }


//2.引用:
        var records = new List<Part>()
          {
              new Part { Id = 1, Name = "one",Description="des1" },
              new Part { Id = 2, Name = "two", Description = "des2" }
          };

         var fileHelper = new FileHelper();

         //写入
         fileHelper.WriteDataToCsv(records,true, "Reports\\file.csv"); 
      
         //读取
         var result = fileHelper.ReadCsv<Part>("Reports\\file.csv",true);

        官方文档:      

        Examples | CsvHelperExamples | CsvHelperExamples | CsvHelper

       

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值