【发布时间】:2016-08-08 20:49:31
【问题描述】:
您好,我有一个 cvs 文件被读取,并调用和 API 来获取信息,然后将其写入文件,如下所示。目前只有一个分隔记录类。
public class EE
{
[FieldOrder(1)]
public string Name;
[FieldOrder(2)]
public string Description;
[FieldOrder(3)]
}
....creating engine....
using (enginev2.BeginWriteFile(@"C:\Update\" + fileName))
{
foreach (EEEEoutput in arrayEmployees)
{
enginev2.WriteNext(EEoutput);
}
}
现在我必须创建另一个分隔记录,因为它具有不同的结构,但我需要将它写入同一个文件。这意味着让两个不同的文件助手引擎一个接一个地写入同一个文件。这可能吗?
为了举例,我已经简化了字段的数量。它们都非常不同,并且有很多领域。
public class EETravel
{
[FieldOrder(1)]
public string TrxType;
[FieldQuoted('"', QuoteMode.OptionalForBoth, MultilineMode.AllowForRead)]
[FieldOrder(2)]
public string EmployeeID;
}
using (engineTravel.BeginWriteFile(@"C:\Update\" + fileName))
{
foreach (Employees_Travel EEtravel in arrayTravel)
{
engineTravel.WriteNext(EEtravel);
}
}
当我拥有上面的代码时,它完全超越了第一个引擎编写的内容。所以我的问题是,如何让第二个引擎在第一个引擎停止的地方继续工作,然后更新文件?
谢谢你
【问题讨论】:
-
首先,如果这是在多线程代码中,您将需要围绕写作进行一些锁定。其次,打开文件进行追加。第三,在写入之前寻找文件末尾以维护其他代码的更新。
-
谢谢你,我使用了 BeginAppendToFile 并且成功了。
标签: c# csv filehelpers