.csv文件后缀是工业开发中用来保存检测记录的一种格式。CSV 本质:纯文本文件,,逗号作为列分隔符,换行作为行分隔符,可用 Excel / 记事本直接打开。
/// <summary>
/// .csv是工业开发中用来保存检测记录的一种格式,类似于 Excel表格的形式
/// </summary>
/// <param name="data">数据</param>
/// <param name="result">内容追加</param>
public void WriteCSV(string data, string result)
{
string path =Directory.GetCurrentDirectory()+"\\Data";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//文件:这里保存成csv格式就代表以纯文本形式存储表格数据。
string fileName = $"{path}\\测试-{DateTime.Now.ToString("yyyy-MM-dd")}.csv";
//有表头,第一次创建文件的时候可以先给表头配置好
if (!File.Exists(fileName)) {
//创建文件配置表头
FileStream fs = new FileStream(fileName,FileMode.Create,FileAccess.Write);
StringBuilder sb = new StringBuilder();
//模拟质检的数据格式
sb.Append("时间:").Append(",").Append("检测状态:").Append(",").Append("数据分析:").Append(",").Append("结果:");
//写入
StreamWriter sw =new StreamWriter(fs,Encoding.Default);
sw.WriteLine(sb);
sw.Close();
sw.Dispose();
fs.Close();
fs.Dispose();
}
else
{
//追加
StreamWriter sw = new StreamWriter(fileName,true, Encoding.Default);
StringBuilder sb = new StringBuilder();
//模拟质检的数据格式
sb.Append(DateTime.Now.ToString("yyyy-MM-ss")).Append(",").Append("NG").Append(",").Append(data).Append(",").Append(result);
sw.WriteLine(sb);
sw.Close();
sw.Dispose();
}
}public string ReadFileData()
{
string path = Directory.GetCurrentDirectory() + "\\Data";
//文件这里,将来可以拓展成目录性质。。。
string fileName = $"{path}\\测试-2026-06-09.csv";
StreamReader sr = new StreamReader(fileName, Encoding.Default);
StringBuilder stringBuilder = new StringBuilder(sr.ReadLine());
return stringBuilder.ToString();
}功能方法:WriteCSV 方法:自动创建Data文件夹,按日期命名 CSV 文件,文件首次创建时写入表头,后续调用追加一行质检数据(时间、检测状态、分析数据、结果)。

Directory.GetCurrentDirectory:获取当前运行目录(所在文件夹)
+"\\Data":拼接子文件夹名,最终路径示例:D:\项目\bin\Debug\Data
Directory.Exists(path):判断指定文件夹是否存在
!取反:如果文件夹不存在(在这里是当不存在会运行if里的代码)
Directory.CreateDirectory(path):创建空文件夹,多级目录也可自动创建。(当判断不存在则创建这个文件夹)
作用:保证后续写入文件时,文件夹一定存在,避免 “路径不存在” 异常。


编辑
字符串插值$"":快速拼接路径 + 文件名。
DateTime.Now:获取当前系统时间。
ToString("yyyy-MM-dd"):时间格式化 → 年-月-日,例如:2026-06-10。
最终文件名示例:Data\测试-2026-06-10.csv
规则:每天生成一个独立 CSV 文件,按日期分割日志,方便管理。


编辑
File.Exists(fileName):判断当天的 CSV 文件是否已存在。
FileStream fs:底层文件流,负责操作磁盘文件字节流。
FileMode.Create:文件不存在则会新建,已存在则覆盖掉之前的文件清空。
FileAccess.Write:权限为写入
StringBuilder:高性能字符串拼接。
Append: 直译追加:不覆盖原有内容,把新内容写到文件末尾,是日志、CSV 记录最常用的模式
特性
WriteLine:写入内容并自动换行,符合表格行规则
Close() / Dispose():关闭流、释放系统文件资源,防止文件被占用


编辑
文件已存在 → 追加一行检测数据
new StreamWriter(fileName, true, ...)
第二个参数 true:追加模式,新内容写到文件末尾,不覆盖原有数据。
传入参数 data(自定义分析数据)
传入参数 result(检测结果)


编辑
Data文件夹。测试-2026-06-09.csv,无法动态读取当天文件。StreamReader:文本文件读取流,和StreamWriter成对使用。sr.ReadLine():只读取文件第一行(也就是 CSV 表头),读完自动换行指针下移。仅能读取指定旧文件的表头,无法读取全部数据、指定行、当天文件,扩展性很差。
这段代码仅适合入门学习、理解文件读写逻辑,工业 / 正式项目绝对不能直接上线。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。