Gewusst wie: Speichern von Dateien mit dem RichTextBox-Steuerelement von Windows Forms
Aktualisiert: November 2007
Das RichTextBox-Steuerelement von Windows Forms kann die in ihm angezeigten Informationen in verschiedenen Formaten ausgeben:
Nur-Text
Unicode-Nur-Text
Rich Text Format (RTF)
RTF mit Leerzeichen anstelle von OLE-Objekten
Nur-Text mit einer Textdarstellung von OLE-Objekten
Rufen Sie zum Speichern einer Datei die SaveFile-Methode auf. Sie können die SaveFile-Methode auch zum Speichern von Daten in einen Stream verwenden. Weitere Informationen finden Sie unter SaveFile(Stream, RichTextBoxStreamType).
So speichern Sie den Inhalt des Steuerelements in einer Datei
Bestimmen Sie den Pfad der zu speichernden Datei.
In einer realen Anwendung wird hierzu normalerweise die SaveFileDialog-Komponente verwendet. Eine Übersicht finden Sie unter Übersicht über die SaveFileDialog-Komponente (Windows Forms).
Rufen Sie die SaveFile-Methode des RichTextBox-Steuerelements auf, und geben Sie die zu speichernde Datei und optional einen Dateityp an. Wenn Sie die Methode mit einem Dateinamen als einziges Argument aufrufen, wird die Datei im RTF-Format gespeichert. Rufen Sie zum Angeben eines anderen Dateityps die Methode mit einem Wert der RichTextBoxStreamType-Enumeration als zweites Argument auf.
Im nachstehenden Beispiel wurde als Speicherort der RTF-Datei der Ordner Eigene Dateien festgelegt. Dieser Speicherort wird verwendet, weil vorausgesetzt werden kann, dass die meisten Computer mit Windows als Betriebssystem über einen Ordner mit diesem Namen verfügen. Dieser Speicherort ermöglicht auch Benutzern mit minimalen Systemzugriffsberechtigungen, die Anwendung sicher auszuführen. Im unten stehenden Beispiel wird davon ausgegangen, dass einem Formular bereits ein RichTextBox-Steuerelement hinzugefügt wurde.
Public Sub SaveFile() ' You should replace the bold file name in the ' sample below with a file name of your own choosing. RichTextBox1.SaveFile(System.Environment.GetFolderPath _ (System.Environment.SpecialFolder.Personal) _ & "\Testdoc.rtf", _ RichTextBoxStreamType.RichNoOleObjs) End Sub
public void SaveFile() { // You should replace the bold file name in the // sample below with a file name of your own choosing. // Note the escape character used (@) when specifying the path. richTextBox1.SaveFile(System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal) + @"\Testdoc.rtf", RichTextBoxStreamType.RichNoOleObjs); }
public void SaveFile() { // You should replace the bold file name in the // sample below with a file name of your own choosing. richTextBox1.SaveFile(System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal) + "\\Testdoc.rtf", RichTextBoxStreamType.RichNoOleObjs); } public: void SaveFile() { // You should replace the bold file name in the // sample below with a file name of your own choosing. richTextBox1->SaveFile(String::Concat (System::Environment::GetFolderPath (System::Environment::SpecialFolder::Personal), "\\Testdoc.rtf"), RichTextBoxStreamType::RichNoOleObjs); }
Sicherheitshinweis: Falls die betreffende Datei noch nicht vorhanden ist, wird durch dieses Beispiel eine neue Datei erstellt. Wenn eine Anwendung eine Datei erstellen muss, benötigt sie eine Erstellungsberechtigung für den Ordner. Berechtigungen werden unter Verwendung von Zugriffssteuerungslisten festgelegt. Wenn die Datei bereits vorhanden ist, benötigt die Anwendung lediglich die Berechtigung für den Schreibzugriff, also eine geringere Berechtigung. Aus Sicherheitsgründen sollte die Datei nach Möglichkeit erst im Verlauf der Bereitstellung erstellt werden. Außerdem sollte nur die Leseberechtigung für eine einzelne Datei erteilt werden (anstatt Erstellungsberechtigungen für den gesamten Ordner zu gewähren). Ferner ist es sicherer, Daten in Benutzerordner statt in den Stammordner oder den Ordner mit den Programmdateien zu schreiben.