private void RecursiveSaveToFile(FileStream f, int indentLevel)
{
// write header
WriteIndents(f, indentLevel);
WriteString(f, Name, true);
WriteString(f, "\n", false);
WriteIndents(f, indentLevel);
WriteString(f, "{\n", false);
// loop through all our keys writing them to disk
foreach (KeyValue child in Children)
{
if (child.Value == null)
{
child.RecursiveSaveToFile(f, indentLevel + 1);
}
else
{
WriteIndents(f, indentLevel + 1);
WriteString(f, child.Name, true);
WriteString(f, "\t\t", false);
WriteString(f, child.AsString(), true);
WriteString(f, "\n", false);
}
}
WriteIndents(f, indentLevel);
WriteString(f, "}\n", false);
}