¿Cierra el archivo después de que se realiza la operación? :¿File.AppendAllText cierra el archivo después de la operación
System.IO.File.AppendAllText(path, text);
A sí, no será suficiente?
¿Cierra el archivo después de que se realiza la operación? :¿File.AppendAllText cierra el archivo después de la operación
System.IO.File.AppendAllText(path, text);
A sí, no será suficiente?
Sí, lo hace.
Si no fuera así, no habría forma de cerrarlo después, ya que no devuelve nada para desechar.
De the docs:
Dada una cadena y una ruta de archivo, este método abre el archivo especificado, Añade la cadena al final del archivo , y luego cierra el archivo.
Los otros métodos de utilidad (ReadAllText
, WriteAllBytes
etc) funcionan de la misma manera.
Este es el código del método:
public static void AppendAllText(string path, string contents, Encoding encoding)
{
using (StreamWriter writer = new StreamWriter(path, true, encoding))
{
writer.Write(contents);
}
}
Por lo tanto, sí.
No creo que sea una buena idea confiar en los detalles de implementación a menos que sea absolutamente necesario. Las implementaciones pueden cambiar. Afortunadamente en este caso está documentado explícitamente. –
Gracias estuve inclinado a usar un StreamWriter, pero esto parece mucho más fácil. –
Parece ser una convención de nomenclatura que todos los métodos IO que contienen 'Todos' eliminan/cierran los flujos subyacentes, fe: 'File.AppendAllLines',' File.AppendAllText', 'File.ReadAllBytes',' File.ReadAllLines', 'File.ReadAllText',' File.WriteAllLines', 'File.WriteAllText'. No es garantía sino una buena mnemotecnia. –
@TimSchmelter: me gustaría: "¿Devuelve una secuencia/lector/escritor?" Si no, debería estar cerrando todo (ya que no hay nada más que pueda hacer). Si lo hace, no te devolverá algo que ya está cerrado. –