string csvFileName = Path.Combine(@"E:\report\", fileName + ".csv"); if (File.Exists(csvFileName)) { File.Delete(csvFileName); } using (StreamWriter sw = new StreamWriter(csvFileName, false, Encoding.UTF8)) { sw.WriteLine("Test Model: " + exParams.GetParameter("Model") + "--特斯拉烧录系统"); sw.WriteLine("Software Version: " ); sw.WriteLine("Serial Number: " + barcode);在转换后,之前的txt文件内容不见了,只剩添加的表头了
时间: 2023-06-18 15:04:38 浏览: 173
根据你提供的代码,我看到你使用了StreamWriter来写入csv文件。在使用StreamWriter时,如果指定了第二个参数为false,则会覆盖已有的文件,如果指定为true,则会在文件末尾追加内容。
因此,我猜测你在写入csv文件时,指定了第二个参数为false,导致原有的文件内容被覆盖掉了,只剩下了你添加的表头。你可以尝试将第二个参数改为true,即使用以下代码:
```csharp
using (StreamWriter sw = new StreamWriter(csvFileName, true, Encoding.UTF8))
{
sw.WriteLine("Test Model: " + exParams.GetParameter("Model") + "--特斯拉烧录系统");
sw.WriteLine("Software Version: " );
sw.WriteLine("Serial Number: " + barcode);
}
```
这样,你的代码就能够在原有文件的基础上追加内容,而不会覆盖掉原有内容了。
相关问题
string txtFileName = Path.Combine(@"E:\report", fileName + ".txt"); if (File.Exists(txtFileName)) { using (StreamReader sr = new StreamReader(txtFileName)) { string line; while ((line = sr.ReadLine()) != null) { sw.WriteLine(line); } } }
这段代码的作用是读取指定路径下的一个以fileName命名的txt文件,并将该文件中的每一行内容写入到一个StreamWriter对象sw所代表的文件中。
具体来说,代码首先使用Path.Combine方法将指定目录(@"E:\report")和文件名(fileName + ".txt")合成为完整的文件路径,存储在txtFileName变量中。
接下来,代码首先使用File.Exists方法判断该路径下的文件是否存在,如果存在则执行后续代码。使用using语句创建一个StreamReader对象sr,该对象用于读取txtFileName文件中的内容。
接下来,代码使用while循环从sr对象中逐行读取文件内容,并将每一行内容写入到StreamWriter对象sw所代表的文件中。
需要注意的是,代码中没有显示创建StreamWriter对象,因此需要在代码的其他部分中创建该对象并将其绑定到指定的文件路径。
执行代码string csvFileName = Path.Combine(@"E:\report", fileName + ".csv"); if (File.Exists(csvFileName)) { File.Delete(csvFileName); } using (StreamWriter sw = new StreamWriter(csvFileName, true, Encoding.UTF8)) 表头{ sw.WriteLine("Test Model: " + exParams.GetParameter("Model") + "--特斯拉烧录系统"); sw.WriteLine("Software Version: " ); sw.WriteLine("Serial Number: " + barcode); sw.WriteLine("Start Time: " ); sw.WriteLine("Test Time: " + testTime); sw.WriteLine("Test Result: " + result); sw.WriteLine("Test Operator: " ); sw.WriteLine("Test Equipment Number: " + exParams.GetParameter("E_NO")); sw.WriteLine("Burnprocess: " + exParams.GetParameter("Process")); sw.WriteLine("************************************************************************************************************************"); } }在转换后,之前的txt文件内容不见了,只剩添加的表头了
根据你提供的代码,可以看出是在指定的文件路径下创建一个新的 CSV 文件,并将指定的表头写入到文件中。由于使用了 `StreamWriter` 的构造函数中的 `true` 参数,表示在文件末尾追加内容,所以如果文件已经存在,会先将其删除,然后再创建新的文件,并将表头写入。
如果你想要将之前的 TXT 文件内容也写入到新的 CSV 文件中,可以在表头写入完成之后,再读取之前的 TXT 文件内容,将其逐行写入到 CSV 文件中即可。你可以在代码中添加以下内容:
```
// 读取之前的 TXT 文件内容
string txtFileName = Path.Combine(@"E:\report", fileName + ".txt");
if (File.Exists(txtFileName))
{
using (StreamReader sr = new StreamReader(txtFileName))
{
string line;
while ((line = sr.ReadLine()) != null)
{
sw.WriteLine(line);
}
}
}
```
这样就可以将之前的 TXT 文件内容与表头一起写入到新的 CSV 文件中了。
阅读全文