2008-10-23 16 views

Respuesta

1

StringBuilder.ToString() se puede pasar al método TextStream.Write() después de crear el archivo.

Con el SaveFileDialog class, puede dejar que el usuario seleccione la ruta y el nombre del archivo, de forma estándar. Ejemplos detallados en el doc.

+0

La OpenFileDialog, de forma predeterminada, requieren el archivo de existir. La clase SaveFileDialog es el camino a seguir. –

+0

el contenido del archivo que se guardará está en el generador de cadenas –

31

Desea la función WriteAllText.

using (SaveFileDialog dialog = new SaveFileDialog()) { 
    if (dialog.ShowDialog(this) == DialogResult.OK) { 
     File.WriteAllText(dialog.FileName, yourStringBuilder.ToString()); 
    } 
} 
4

ya no pienso ...

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication2 { 
public partial class Form1 : Form { 

    StringBuilder sb = new StringBuilder(); 

    public Form1() { 
     InitializeComponent(); 

     sb.Append("This is going "); 
     sb.Append("to be saved to a text file"); 
    } 

    private void button1_Click(object sender, EventArgs e) { 
     using (SaveFileDialog dlg = new SaveFileDialog()) { 
      if (dlg.ShowDialog() == DialogResult.OK) { 
       string fileName = dlg.FileName; 
       SaveToFile(fileName); 
      } 
     } 
    } 

    private void SaveToFile(string fileName) { 
     System.IO.TextWriter w = new System.IO.StreamWriter(fileName); 
     w.Write(sb.ToString()); 
     w.Flush(); 
     w.Close(); 
    } 
} 
+0

¿Por qué meterse con StreamWriters cuando hay una función incorporada para hacerlo por usted? –

+1

Oye, muy bien ... No he visto esa función. He aprendido algo nuevo hoy: D – sbeskur

Cuestiones relacionadas