[C# .NET] Guardar archivos con SaveFileDialog, RichTextBox y StreamWriter


El componente SaveFileDialog sirve para que nos muestre la ventana para seleccionar la ubicación donde se guardara el archivo, un componente muy útil en todo tipo de proyectos.

Debemos entender que SaveFileDialog solo nos muestra la ventana para seleccionar archivo, y si damos OK, nos devolvera la ruta o path + el nombre del archivo para guardarlo.

Los procedimientos para guardar los tenemos que hacer nosotros, después de obtener la ruta o path.

A continuacion les dejo 2 scripts, son muy similares, el primero es usando StreamWriter para guardar y el segundo es usando el componente RichTextBox.

StreamWriter

La ventaja de usar StreamWriter es que podemos agregar lineas de texto generadas automáticamente por algún procedimiento o cualquier cosa.

[code language=”csharp”] SaveFileDialog save = new SaveFileDialog();
save.FileName = "prueba.txt";
// filtros
save.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*";

if (save.ShowDialog() == DialogResult.OK)
{
StreamWriter w = new StreamWriter(save.FileName);
w.WriteLine("Hola");
w.Close();
}
[/code]

RichTextBox

La ventaja de usar RichTextBox es que podemos guardar el contenido del componente incluyendo saltos de linea.

[code language=”csharp”] SaveFileDialog save = new SaveFileDialog();
save.FileName = "prueba.txt";
// filtros
save.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*";

if (save.ShowDialog() == DialogResult.OK)
{
richTextBox1.SaveFile(save.FileName, RichTextBoxStreamType.PlainText);
}
[/code]

En ambos casos se puede ver que el componente SaveFileDialog sigue el mismo patrón de uso, se crea una instancia, se agrega un nombre inicial al archivo, se agregan los filtros, y con un if mostramos el dialogo y verificamos que la respuesta sea OK para proceder a guardar.

También debemos notar que el código lo podemos colocar en cualquier lugar, un buen ejemplo seria el evento click de un botón, otro ejemplo seria lanzar el dialogo después de finalizar algún procedimiento.

Si tienen dudas y/o comentarios no olviden escribirlos 😉

Leave a comment