vlad781 Ответов: 5

сохраняйте содержимое rich textbox непосредственно в файл.(без использования диалогового окна savefile)


как я могу сохранить содержимое поля форматированного текста без необходимости открывать диалоговое окно Сохранить файл?
я думаю, что это что-то вроде:

richtextbox1 отображение.Файл сохранения(@"\документы\save_file_here.РТФ");

но он не может найти файл для перезаписи в первую очередь.

5 Ответов

Рейтинг:
43

lewax00

Самый короткий путь это наверное:

File.WriteAllText(@"\Documents\save_file_here.rtf", richTextBox1.Text)


Однако я не уверен, что это сохранит форматирование.


vlad781

файл dos не существует в текущем контексте.

Valery Possoz

вы добавили в начале файла : using System.ИО ;

vlad781

а, да. теперь все хорошо, большое спасибо.

Рейтинг:
2

Sergey Alexandrovich Kryukov

У вас есть проблема с разделением забот. Диалоговые окна не имеют ничего общего с операциями чтения/записи файлов. Они работают только с файловой системой и позволяют определить имя файла для работы, ничего больше. Для операций чтения/записи абсолютно неважно, откуда взялось имя файла.

Кроме того, нет абсолютно никаких ситуаций, когда файл с именем hard-coded в программе может быть полезен, если вы не запускаете программы из Visual Studio и не изменяете их все время. Если вы попытаетесь развернуть исполняемый файл, он будет отключен из-за проблем с жестким кодированием. Имена файлов (даже постоянные) всегда вычисляются во время выполнения.

—СА


Рейтинг:
2

Member 13988695

if (openFileDialog1.ShowDialog() == DialogResult.ОК)
{
richTextBox1.LoadFile(openFileDialog1.Имя Файла, RichTextBoxStreamType.RichText);
}

chibre de dingue


Richard Deeming

Прочтите вопрос еще раз: "без необходимость открыть диалоговое окно Сохранить файл"

Кроме того, вопрос был о экономия файл; ваш ответ примерно таков: погрузка файл.

Вопрос уже решен. Неформатированный блок кода, который игнорирует требования из вопроса, ничего не добавляет к обсуждению.

Рейтинг:
2

Member 14951433

Поток mys;

Диалоговое окно openfiledialog opf1 = новое диалоговое окно openfiledialog();
opf1.Title = "открыть текстовый файл";
opf1.Фильтр = "текстовые файлы|*.txt|все файлы(*.*)|*.*|В формате HTML(*в формате html*)|*html-код*";

если (opf1.Метод Showdialog()==Система.Окна.Формы.свойство DialogResult.ОК)
{
если((мыс=opf1.Функция openfile())!=нуль)
{
строки ФСПО = opf1.Именем;
строка fltxt = файл.ReadAllText(strf);
richtextbox1 отображение.Текст = fltxt;
}


Maciej Los

Зачем публиковать ответ на такой старый вопрос и где на этот вопрос уже был дан ответ? Сомневаюсь, что ОП не заинтересован в поиске нового ответа.
Кстати: Ваш код используется для чтения текстового файла, а не для его записи. Это и есть причина голосования 1.

Richard Deeming

Читать вопрос. ОП хочет этого СОХРАНИТЬ файл БЕЗ открытие диалогового окна файл.

Ваше "решение" не делает ничего подобного.

Рейтинг:
1

theanil

//create a file first
FileStream outStream = File.Create("Path \\filename");

//Create a variable
string data = richTextBox.Text;

//Save 
StreamWriter sw = new StreamWriter(outStream);
        sw.WriteLine(data);
        sw.Flush();
        sw.Close();


vlad781

filestream не удалось найти.