/ / SaveFileDialog zapisuje jako puste ext? - C # - c #

SaveFileDialog zapisuje jako puste ext? - C # - c #

Więc zrozumiałem, że robię OpenFileDialog, teraz janie może zrozumieć SaveFileDialog. Sprawdzono kilka stron i każdy z nich ma własne sposoby robienia tego, ale żaden z nich nie zapisał tekstu znajdującego się w pliku richtextbox do pliku.

private void button1_Click(object sender, EventArgs e)
{
Stream myStream;
SaveFileDialog exportdialogue = new SaveFileDialog();

exportdialogue.Filter = "txt files (*.txt)|*.txt*";
exportdialogue.FilterIndex = 2;
exportdialogue.RestoreDirectory = true;

if (exportdialogue.ShowDialog() == DialogResult.OK)
{
if ((myStream = exportdialogue.OpenFile()) != null)
{
StreamWriter wText = new StreamWriter(myStream);

wText.Write("Some Text");

myStream.Close();
}
}
}

Używanie richtextbox i normalnego przycisku również "using System.IO;" (Dla strumienia)

Próbuję uzyskać przycisk do użycia SaveFileDialog, aby mógł eksportować zawartość w richtextbox do pliku tekstowego.

Kwestia: Nie jestem pewien, co muszę zrobić, aby zapisać zawartość z pola tekstowego. Nie wiem, dlaczego SaveFileDialog zapisuje pliki bez rozszerzenia, gdy filtr jest na miejscu.

Odpowiedzi:

1 dla odpowiedzi № 1

Ustawiłeś:

exportdialogue.Filter = "txt files (*.txt)|*.txt*";

który zawiera tylko JEDEN filtr, ale ustawiasz:

exportdialogue.FilterIndex = 2;

co oznacza użycie filtra SECOND. (FilterIndex jest oparty na 1).

Jeśli ustawisz FilterIndex = 1, twój plik powinien mieć rozszerzenie .txt


0 dla odpowiedzi nr 2

możesz użyć using {} blok do rozwiązania problemu:

Spróbuj tego:

            SaveFileDialog exportdialogue = new SaveFileDialog();

exportdialogue.Filter = "txt files (*.txt)|*.txt*";
exportdialogue.FilterIndex = 2;
exportdialogue.RestoreDirectory = true;


if (exportdialogue.ShowDialog() == DialogResult.OK)
{
using( Stream myStream = exportdialogue.OpenFile())
{
StreamWriter wText = new StreamWriter(myStream);

wText.Write("Some Text");
wText.Close();


}
}

-1 dla odpowiedzi nr 3

musisz użyć metody savefile zasięgu textbox i przekazać jej nazwę pliku savedialogbox.

reachtextbox.SaveFile(exportdialogue.FileName);

ps: będzie to coś w stylu powyższego kodu.