我想根据特定输出将数据添加到文本文件中,它将读取XML文件并将特定行写入文本文件。如果数据已经写入文本文件,我不想再写一遍。如何在文本文件中不包含数据(如果已经存在)
代码:
public void output(string folder)
{
string S = "Data" + DateTime.Now.ToString("yyyyMMddHHmm") + ".xml";
//Trades.Save(S);
string path = Path.Combine(folder, S);
Console.WriteLine(path);
XDocument f = new XDocument(Trades);
f.Save(path);
string[] lines = File.ReadAllLines(path);
File.WriteAllLines(path, lines);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"H:\Test" + DateTime.Now.ToString("yyMMdd") + ".txt", true))
{
foreach (string line in lines)
{
if (line.Contains("CertainData"))
{
file.WriteLine(line);
if (File.ReadAllLines(path).Any(x => x.Equals(line)))
{
}
else
{
string[] tradeRefLines = File.ReadAllLines(path);
File.WriteAllLines(path, tradeRefLines); ;
}
}
}
}
}
问题是,它仍然会写行,即使数据是完全一样的其他地方。我不想复制线
有什么建议吗?
澄清UPDATE
的“CertainData”是一个参考号码
我有一大堆的文件,这些文件中有数据和一块我想单独和放入文本文件“ CertainData”领域,这将有一个参考号码
有时候我发将里面的相同的格式化信息与文件‘在他们的CertainData’出现供参考
当我运行这个程序时,如果文本文件中已经包含“CertainData”参考编号,我不希望它被写入
如果您需要任何更多的澄清让我知道,我会更新帖子
你的意思是你不想写重复的行到一个文件? – kkaosninja
如果你必须检查它是否存在*在所有文档中*而不是在每行中,那么使用ReadAllText,它将只返回一个字符串,然后Contains会给你你期待的结果 – Gusman
@kkaosninja是的,对不起,如果我没有足够清楚 – Nonagon