Как сохранить содержимое stringbuilder в текстовый файл, используя SaveFileDialog? - PullRequest
8 голосов
/ 23 октября 2008

Это приложение winforms.

В Windows я хочу, чтобы пользователь нажимал и нажимал кнопку, а затем всплывающее окно должно заставлять пользователя выбирать путь, куда он хочет сохранить файл.

Ответы [ 4 ]

31 голосов
/ 23 октября 2008

Требуется функция WriteAllText .

using (SaveFileDialog dialog = new SaveFileDialog()) {
    if (dialog.ShowDialog(this) == DialogResult.OK) {
        File.WriteAllText(dialog.FileName, yourStringBuilder.ToString());
    }
}
4 голосов
/ 23 октября 2008

Не думай больше ...

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();
    }
}
1 голос
/ 23 октября 2008

StringBuilder.ToString () вернет вам строку.

Эта ссылка покажет вам, как записать текст в файл.

Эта ссылка покажет вам, как вызвать SaveFileDialog и передать ему поток для сохранения.

Надеюсь, это поможет.

1 голос
/ 23 октября 2008

StringBuilder.ToString() может быть передано методу TextStream.Write() после создания файла.

Используя класс SaveFileDialog , вы можете позволить пользователю выбрать путь и имя файла - стандартным способом. Подробные примеры в doc .

...