private void EscribirArbolAudiovisual(BNodo <string, Audiovisual> nodo, int grado, ref int contador, int contadorPadre, ref StreamWriter writer, string ruta, BNodo <string, Audiovisual> raiz) { string linea; linea = $"{contador.ToString("000;-000")}|{contadorPadre.ToString("000;-000")}"; for (int i = 0; i < grado; i++) { linea += $"|{String.Format("{0, -3}", "")}"; } for (int i = 0; i < nodo.Entradas.Count(); i++) { Audiovisual item = nodo.Entradas[i].Apuntador; linea += $"|{item.ToFixedSizeString()}"; } for (int i = nodo.Entradas.Count(); i < (grado - 1); i++) { linea += $"|{String.Format("{0, -66}", "")}"; } writer.WriteLine(linea); if (nodo != raiz) { writer.Close(); ReescribirArchivo(contadorPadre, contador, ruta); writer = new StreamWriter(ruta, true); } contador++; int contadorHijos; contadorHijos = 0; contadorPadre = contador - 1; foreach (var item in nodo.Hijos) { EscribirArbolAudiovisual(nodo.Hijos[contadorHijos], grado, ref contador, contadorPadre, ref writer, ruta, raiz); contadorHijos++; } }