我从文件文本中读取所有行到列表<>。如何只更换1行列表中的1列?
但我有一个问题。我想在1行文件文本中仅更改1个元素(是列)。
当我发送电子邮件成功时,它会更新我检查的这一行的时间。
此数据在文件中的文本
User1 [email protected] 5/1/2016
// many rows.....
SendEmail成功后,它就会更新,如:
User1 [email protected] 8/1/2016
现在,我必须用AppendAllLine()函数中添加一行:
File.AppendAllLines(dataPath, (from i in Items select i.Serialize()).ToArray(), Encoding.Default);
我试过StreamWriter,但它不支持像:
from i in Items select i.Serialize()).ToArray()
在这里我的代码来更新时间。
if (time.Day == today.Day)
{
flag = SendMail.sendDailyMail(listMail);
if (flag == true)
{
rows.time = timeNow;
List<DTOSaveFromFile> lst = new List<DTOSaveFromFile>(1);
lst.Add(rows);
DiskFile.Save(lst);
}
}
级磁盘文件:
public static void Save(List<DTOSaveFromFile> Items)
{
File.AppendAllLines(dataPath, (from i in Items select i.Serialize()).ToArray(), Encoding.Default);
}
public static List<DTOSaveFromFile> Load()
{
string[] data = File.ReadAllLines(dataPath);
return (from i in data select new DTOSaveFromFile(i)).ToList<DTOSaveFromFile>();
}
亲爱的朋友,你能否让你的问题更专注。你有什么问题,你有什么错误等等。最好的祝福! –
在这种情况下,我不知道如何仅将'5/1/2016'更改为'8/1/2016'。只改变这个元素。不要添加1行。因为这个我的代码总是添加1行。我想在这一行中替换这次。 – lkajfds
似乎没有随时可用的随机存取磁盘文件功能。看来你的主要选择是阅读整个文件;找到并修改该行,然后将其写回。它必须是一个磁盘文件?你有权访问任何类型的SQL服务器吗? –