FileDialog Clase

Definición

Muestra un cuadro de diálogo en el que el usuario puede seleccionar un archivo.

public ref class FileDialog abstract : System::Windows::Forms::CommonDialog
public abstract class FileDialog : System.Windows.Forms.CommonDialog
type FileDialog = class
    inherit CommonDialog
Public MustInherit Class FileDialog
Inherits CommonDialog
Herencia
Derivado

Ejemplos

En el ejemplo de código siguiente se usa la implementación de FileDialog y se muestra cómo OpenFileDialog crear, establecer propiedades y mostrar el cuadro de diálogo. En el ejemplo se usa el ShowDialog método para mostrar el cuadro de diálogo y devolver .DialogResult El ejemplo requiere un formulario con un Button colocado en él y el System.IO espacio de nombres agregado a él.

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

      openFileDialog1->InitialDirectory = "c:\\";
      openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
      {
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
         {
            // Insert code to read the stream here.
            myStream->Close();
         }
      }
   }
var fileContent = string.Empty;
var filePath = string.Empty;

using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.FilterIndex = 2;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        //Get the path of specified file
        filePath = openFileDialog.FileName;

        //Read the contents of the file into a stream
        var fileStream = openFileDialog.OpenFile();

        using (StreamReader reader = new StreamReader(fileStream))
        {
            fileContent = reader.ReadToEnd();
        }
    }
}

MessageBox.Show(fileContent, "File Content at path: " + filePath, MessageBoxButtons.OK);
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
        Try
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                ' Insert code to read the stream here.
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

Comentarios

FileDialog es una clase abstracta que contiene un comportamiento común para las OpenFileDialog clases y SaveFileDialog . No está pensado para usarse directamente, pero contiene un comportamiento común para esas dos clases. No se puede crear una instancia de FileDialog. Aunque la clase se declara pública, no se puede heredar de ella, ya que contiene métodos abstractos internos. Para crear un cuadro de diálogo para seleccionar o guardar un archivo, use OpenFileDialog o SaveFileDialog.

FileDialog es un cuadro de diálogo modal; Por lo tanto, cuando se muestra, bloquea el resto de la aplicación hasta que el usuario haya elegido un archivo. Cuando se muestra un cuadro de diálogo de forma modal, no se puede producir ninguna entrada (teclado o clic del mouse), excepto en los objetos del cuadro de diálogo. El programa debe ocultar o cerrar el cuadro de diálogo (normalmente en respuesta a alguna acción del usuario) antes de que se pueda producir la entrada al programa que realiza la llamada.

Precaución

Cuando use clases derivadas de FileDialog, como OpenFileDialog y SaveFileDialog, evite usar literales de cadena que contengan rutas de acceso absolutas. En su lugar, obtenga dinámicamente la ruta de acceso mediante una o varias de las técnicas descritas en la tabla siguiente.

Si desea permitir que los usuarios seleccionen una carpeta en lugar de un archivo, use .FolderBrowserDialog

En función del tipo de aplicación, cómo se almacenan los datos asociados a la aplicación y el motivo del acceso al sistema de archivos, hay muchas maneras posibles de crear una ruta de acceso de directorio. En la tabla siguiente se muestran las técnicas para crear rutas de acceso dinámicamente.

Ruta de acceso o categoría de programa Clase y miembros que se van a usar
Rutas de acceso estándar de Windows, como archivos de programa, MyDocuments, escritorio, etc. La System.Environment clase es el origen más completo para estos, ya sea a través de sus métodos estáticos, como SystemDirectory, o a través del GetFolderPath método , mediante uno de los Environment.SpecialFolder valores enumerados.
Rutas de acceso relacionadas con la aplicación actual La Application clase tiene miembros estáticos para obtener determinadas rutas de acceso, como StartupPath, ExecutablePath, LocalUserAppDataPathy CommonAppDataPath.

El GetTempPath método de System.IO.Path devuelve la ruta de acceso de la carpeta temporal.

El GetCurrentDirectory método de la clase devuelve el directorio en ejecución actual de la System.IO.Directory aplicación.

La RootDirectory propiedad de la DriveInfo clase representa el directorio raíz de la unidad especificada.
Rutas de acceso almacenadas como configuración de la aplicación Acceda a la propiedad de configuración de aplicaciones correspondiente de la clase contenedora derivada de ApplicationSettingsBase. Para obtener más información, consulte Configuración de la aplicación para Windows Forms.
Almacenamiento del Registro Algunas aplicaciones almacenan información de directorio en el Registro. La Application clase tiene las CommonAppDataPath propiedades y LocalUserAppDataPath que se resuelven en un RegistryKey valor.
aplicaciones ClickOnce Para las aplicaciones ClickOnce, use Application miembros de clase como UserAppDataPath, que devolverán un puntero al directorio de datos ClickOnce. Para obtener más información, vea Obtener acceso a datos locales y remotos en aplicaciones ClickOnce.
Aplicaciones internacionales Para las aplicaciones internacionales, recupere la parte de ruta de acceso relativa de un recurso de cadena en la aplicación mediante la System.Resources.ResourceReader clase . Para obtener más información sobre la globalización y la localización, consulte el tema Globalización y localización.

Tenga en cuenta que se puede crear una ruta de acceso completa mediante una o varias de las técnicas descritas. Por ejemplo, el GetFolderPath método podría usarse para obtener la ruta de acceso a la carpeta MyDocuments y, a continuación, se puede usar una configuración de aplicación para agregar una parte relativa del subdirectorio.

La System.IO.Path clase contiene miembros estáticos para ayudar a manipular cadenas de ruta de acceso absolutas y relativas, mientras que las System.IO.File clases y System.IO.Directory tienen miembros estáticos que manipulan realmente archivos y directorios, respectivamente.

Importante

Si el usuario de la aplicación cambia la carpeta en FileDialog, el directorio de trabajo actual de la aplicación se establece en la ubicación especificada en .FileDialog Para evitar esto, establezca la RestoreDirectory propiedad trueen .

Campos

EventFileOk

Contiene el evento FileOk.

Propiedades

AddExtension

Obtiene o establece un valor que indica si el cuadro de diálogo agrega automáticamente una extensión a un nombre de archivo en caso de que el usuario omita dicha extensión.

AddToRecent

Obtiene o establece un valor que indica si el cuadro de diálogo agrega el archivo que se abre o se guarda en la lista reciente.

AutoUpgradeEnabled

Obtiene o establece un valor que indica si esta FileDialog instancia debe actualizar automáticamente la apariencia y el comportamiento al ejecutarse en Windows Vista.

CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
CheckFileExists

Obtiene o establece un valor que indica si el cuadro de diálogo muestra una advertencia cuando el usuario especifica un nombre de archivo que no existe.

CheckPathExists

Obtiene o establece un valor que indica si el cuadro de diálogo muestra una advertencia cuando el usuario especifica una ruta de acceso que no existe.

ClientGuid

Obtiene o establece el GUID que se va a asociar a este estado de este cuadro de diálogo. Normalmente, el estado como la última carpeta visitada y la posición y el tamaño del cuadro de diálogo se conservan en función del nombre del archivo ejecutable. Al especificar un GUID, una aplicación puede tener distintos estados persistentes para las distintas versiones del cuadro de diálogo dentro de la misma aplicación (por ejemplo, un cuadro de diálogo de importación y un cuadro de diálogo abierto).

Esta funcionalidad no está disponible si una aplicación no usa estilos visuales o si AutoUpgradeEnabled está establecido en false.

Container

Obtiene la interfaz IContainer que contiene la clase Component.

(Heredado de Component)
CustomPlaces

Obtiene la colección de ubicaciones personalizadas de esta instancia de FileDialog.

DefaultExt

Obtiene o establece la extensión de nombre de archivo predeterminada.

DereferenceLinks

Obtiene o establece un valor que indica si el cuadro de diálogo devuelve la ubicación del archivo al que hace referencia el acceso directo o bien devuelve la ubicación del acceso directo (.lnk).

DesignMode

Obtiene un valor que indica si Component está actualmente en modo de diseño.

(Heredado de Component)
Events

Obtiene la lista de controladores de eventos asociados a Component.

(Heredado de Component)
FileName

Obtiene o establece una cadena que contiene el nombre de archivo seleccionado en el cuadro de diálogo de archivo.

FileNames

Obtiene los nombres de todos los archivos seleccionados en el cuadro de diálogo.

Filter

Obtiene o establece la cadena actual de filtro de nombres de archivo, que determina las opciones que aparecen en los cuadros "Guardar como archivo de tipo" o "Archivos de tipo" del cuadro de diálogo.

FilterIndex

Obtiene o establece el índice del filtro actualmente seleccionado en el cuadro de diálogo de archivo.

InitialDirectory

Obtiene o establece el directorio inicial que muestra el cuadro de diálogo de archivo.

Instance

Obtiene el identificador de instancia Win32 de la aplicación.

OkRequiresInteraction

Obtiene o establece un valor que indica si el botón Aceptar del cuadro de diálogo está deshabilitado hasta que el usuario navega por la vista o edita el nombre de archivo (si procede).

Options

Obtiene los valores para inicializar el objeto FileDialog.

RestoreDirectory

Obtiene o establece un valor que indica si el cuadro de diálogo restaura el directorio al directorio seleccionado previamente antes de cerrarse.

ShowHelp

Obtiene o establece un valor que indica si se muestra el botón Ayuda en el cuadro de diálogo de archivo.

ShowHiddenFiles

Obtiene o establece un valor que indica si el cuadro de diálogo muestra archivos ocultos y del sistema.

ShowPinnedPlaces

Obtiene o establece un valor que indica si se muestran los elementos mostrados de forma predeterminada en el panel de navegación de la vista.

Site

Obtiene o establece ISite de Component.

(Heredado de Component)
SupportMultiDottedExtensions

Obtiene o establece si el cuadro de diálogo admite mostrar y guardar archivos que tienen varias extensiones de nombre de archivo.

Tag

Obtiene o establece un objeto que contiene datos sobre el control.

(Heredado de CommonDialog)
Title

Obtiene o establece el título del cuadro de diálogo de archivo.

ValidateNames

Obtiene o establece un valor que indica si el cuadro de diálogo acepta solo nombres de archivo Win32 válidos.

Métodos

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos que usa Component.

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados que usa Component y, de forma opcional, libera los recursos administrados.

(Heredado de Component)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Define el procedimiento de enlace para cuadros de diálogo comunes que se reemplaza para agregar una funcionalidad específica a un cuadro de diálogo de archivo.

InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
OnFileOk(CancelEventArgs)

Genera el evento FileOk.

OnHelpRequest(EventArgs)

Genera el evento HelpRequest.

(Heredado de CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Define el procedimiento de ventana propietaria que se reemplaza para agregar una funcionalidad específica a un cuadro de diálogo común.

(Heredado de CommonDialog)
Reset()

Restablece los valores predeterminados de todas las propiedades.

RunDialog(IntPtr)

Especifica un cuadro de diálogo común.

ShowDialog()

Ejecuta un cuadro de diálogo común con un propietario predeterminado.

(Heredado de CommonDialog)
ShowDialog(IWin32Window)

Ejecuta un cuadro de diálogo común con el propietario especificado.

(Heredado de CommonDialog)
ToString()

Devuelve una versión de cadena de este objeto.

Eventos

Disposed

Tiene lugar cuando una llamada elimina el componente mediante una llamada al método Dispose().

(Heredado de Component)
FileOk

Se produce cuando el usuario hace clic en el botón Abrir o Guardar de un cuadro de diálogo de archivo.

HelpRequest

Se produce cuando el usuario hace clic en el botón Ayuda de un cuadro de diálogo común.

(Heredado de CommonDialog)

Se aplica a

Consulte también