Cómo: Guardar archivos con el control RichTextBox de formularios Windows Forms
El control RichTextBox de formularios Windows Forms puede escribir la información que muestra en uno de los siguientes formatos:
Texto sin formato
Texto sin formato Unicode
Formato de texto enriquecido (RTF)
RTF con espacios en lugar de objetos OLE
Texto sin formato con una representación textual de objetos OLE
Para guardar un archivo, llame al método SaveFile. También puede utilizar el método SaveFile para guardar datos en una secuencia. Para obtener más información, vea SaveFile(Stream, RichTextBoxStreamType).
Para guardar el contenido del control en un archivo
Determina la ruta de acceso del archivo que se va a guardar.
Para hacer esto en una aplicación real, lo habitual es utilizar el componente SaveFileDialog. Para obtener información general, vea Información general sobre el componente SaveFileDialog (formularios Windows Forms).
Llame al método SaveFile del control RichTextBox, y especifique el archivo que se guardará y, opcionalmente, un tipo de archivo. Si llama al método con un nombre de archivo como único argumento, el archivo se guardará como RTF. Para especificar otro tipo de archivo, llame al método con un valor de la enumeración RichTextBoxStreamType como segundo argumento.
En el ejemplo siguiente, la ruta de acceso establecida para la ubicación del archivo de texto enriquecido es la carpeta Mis documentos. Se utiliza esta ubicación porque se puede asumir que la mayoría de los equipos que ejecuten el sistema operativo Windows tendrán esta carpeta. Al elegir esta ubicación, también se permite a los usuarios con niveles de acceso mínimos ejecutar la aplicación de un modo seguro. En el ejemplo siguiente suponemos que ya se ha agregado un control RichTextBox al formulario.
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); }
Nota sobre la seguridad En este ejemplo se crea un nuevo archivo, si es que aún no existe. Si una aplicación necesita crear un archivo, precisará acceso de creación para la carpeta correspondiente. Los permisos se establecen usando listas de control de acceso. Sin embargo, si el archivo ya existe, la aplicación sólo precisará acceso de escritura, un privilegio menor. Por tanto, siempre que sea posible, resulta más seguro crear el archivo durante la implementación y conceder sólo acceso de lectura para un único archivo, en lugar de acceso de creación para una carpeta. También es más seguro escribir datos en carpetas de usuario en lugar de en la carpeta raíz o en la carpeta Archivos de programa.