void Save(List<string> list, int max)
{
using (MemoryStream ms = new MemoryStream())
{
XmlTextWriter x = null;
try
{
x = new XmlTextWriter(ms, Encoding.UTF8);
if (x == null) { Debug.Assert(false); return; }
x.Formatting = Formatting.Indented;
x.WriteStartDocument();
x.WriteStartElement("RecentFiles");
foreach (string filepath in list)
{
x.WriteStartElement("RecentFile");
x.WriteAttributeString("Filepath", filepath);
x.WriteEndElement();
}
x.WriteEndElement();
x.WriteEndDocument();
x.Flush();
using (SmartStream ss = OpenStream(FileMode.Create))
{
ss.Stream.SetLength(0);
ms.Position = 0;
byte[] buffer = new byte[1 << 20];
for (; ; )
{
int bytes = ms.Read(buffer, 0, buffer.Length);
if (bytes == 0) break;
ss.Stream.Write(buffer, 0, bytes);
}
}
}
finally
{
if (x != null) x.Close();
}
}
}