FileDialog Classe

Definição

Exibe uma caixa de diálogo na qual o usuário pode selecionar um arquivo.

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
Herança
Derivado

Exemplos

O exemplo de código a seguir usa a OpenFileDialog implementação de FileDialog e ilustra a criação, a configuração de propriedades e a exibição da caixa de diálogo. O exemplo usa o ShowDialog método para exibir a caixa de diálogo e retornar o DialogResult. O exemplo requer um formulário com um Button colocado nele e o System.IO namespace adicionado a ele.

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

Comentários

FileDialog é uma classe abstrata que contém um comportamento comum para as OpenFileDialog classes e SaveFileDialog . Ele não se destina a ser usado diretamente, mas contém um comportamento comum para essas duas classes. Não é possível criar uma instância do FileDialog. Embora a classe seja declarada pública, você não pode herdar dela, pois ela contém métodos abstratos internos. Para criar uma caixa de diálogo para selecionar ou salvar um arquivo, use OpenFileDialog ou SaveFileDialog.

FileDialog é uma caixa de diálogo modal; portanto, quando mostrado, ele bloqueia o restante do aplicativo até que o usuário tenha escolhido um arquivo. Quando uma caixa de diálogo é exibida modally, nenhuma entrada (clique no teclado ou mouse) pode ocorrer, exceto para objetos na caixa de diálogo. O programa deve ocultar ou fechar a caixa de diálogo (geralmente em resposta a alguma ação do usuário) antes que a entrada para o programa de chamada possa ocorrer.

Cuidado

Quando você usa classes derivadas de FileDialog, como OpenFileDialog e SaveFileDialog, evite usar literais de cadeia de caracteres contendo caminhos absolutos. Em vez disso, obtenha dinamicamente o caminho usando uma ou mais das técnicas descritas na tabela a seguir.

Se você quiser permitir que os usuários selecionem uma pasta em vez de um arquivo, use o FolderBrowserDialog.

Dependendo do tipo de aplicativo, de como os dados associados ao aplicativo são armazenados e do motivo para acessar o sistema de arquivos, há muitas maneiras possíveis de criar um caminho de diretório. A tabela a seguir mostra as técnicas para criar caminhos dinamicamente.

Categoria de caminho ou programa Classe e membros a serem usados
Caminhos padrão do Windows, como Arquivos de Programas, MyDocuments, Área de Trabalho e assim por diante A System.Environment classe é a fonte mais completa para eles, seja por meio de seus métodos estáticos, como SystemDirectory, ou por meio do GetFolderPath método , usando um dos Environment.SpecialFolder valores enumerados.
Caminhos relacionados ao aplicativo atual A Application classe tem membros estáticos para obter determinados caminhos, como StartupPath, ExecutablePath, LocalUserAppDataPathe CommonAppDataPath.

O GetTempPath método do System.IO.Path retorna o caminho da pasta temporária.

O GetCurrentDirectory método da System.IO.Directory classe retorna o diretório em execução atual do aplicativo.

A RootDirectory propriedade da DriveInfo classe representa o diretório raiz da unidade especificada.
Caminhos armazenados como configurações de aplicativo Acesse a propriedade de configurações de aplicativos correspondente da classe wrapper derivada de ApplicationSettingsBase. Para obter mais informações, consulte Configurações do aplicativo para Windows Forms.
Armazenamento do Registro Alguns aplicativos armazenam informações de diretório no registro. A Application classe tem as CommonAppDataPath propriedades e LocalUserAppDataPath que resolve a um RegistryKey valor.
Aplicativos ClickOnce Para aplicativos ClickOnce, use Application membros de classe como UserAppDataPath, que retornarão um ponteiro para o diretório de dados ClickOnce. Para obter mais informações, confira Acessando dados locais e remotos em aplicativos ClickOnce.
Aplicativos internacionais Para aplicativos internacionais, recupere a parte do caminho relativo de um recurso de cadeia de caracteres em seu aplicativo usando a System.Resources.ResourceReader classe . Para obter mais informações sobre globalização e localização, consulte o tópico Globalização e Localização.

Observe que um caminho completo pode ser criado usando uma ou mais das técnicas descritas. Por exemplo, o GetFolderPath método pode ser usado para obter o caminho para a pasta MyDocuments e, em seguida, uma configuração de aplicativo pode ser usada para adicionar uma parte relativa do subdiretório.

A System.IO.Path classe contém membros estáticos para ajudar a manipular cadeias de caracteres de caminho absolutas e relativas, enquanto as System.IO.File classes e System.IO.Directory têm membros estáticos que realmente manipulam arquivos e diretórios, respectivamente.

Importante

Se o usuário do aplicativo alterar a pasta no FileDialog, o diretório de trabalho atual do aplicativo será definido como o local especificado no FileDialog. Para evitar isso, defina a RestoreDirectory propriedade como true.

Campos

EventFileOk

É proprietário do evento FileOk.

Propriedades

AddExtension

Obtém ou define um valor que indica se a caixa de diálogo adiciona automaticamente uma extensão a um nome de arquivo se o usuário omite a extensão.

AddToRecent

Obtém ou define um valor que indica se a caixa de diálogo adiciona o arquivo que está sendo aberto ou salvo à lista recente.

AutoUpgradeEnabled

Obtém ou define um valor que indica se essa FileDialog instância deve atualizar automaticamente a aparência e o comportamento durante a execução no Windows Vista.

CanRaiseEvents

Obtém um valor que indica se o componente pode acionar um evento.

(Herdado de Component)
CheckFileExists

Obtém ou define um valor que indica se a caixa de diálogo exibirá um aviso se o usuário especificar um nome de arquivo que não existe.

CheckPathExists

Obtém ou define um valor que indica se a caixa de diálogo exibe um aviso se o usuário especificar um caminho que não existe.

ClientGuid

Obtém ou define o GUID a ser associado ao estado da caixa de diálogo. Normalmente, estados como a última pasta acessada e a posição e o tamanho da caixa de diálogo persistem com base no nome do arquivo executável. Ao especificar um GUID, um aplicativo pode ter diferentes estados persistentes para diferentes versões da caixa de diálogo dentro do mesmo aplicativo (por exemplo, uma caixa de diálogo de importação e uma caixa de diálogo aberta).

Essa funcionalidade não estará disponível se um aplicativo não estiver usando estilos visuais ou se AutoUpgradeEnabled estiver definido como false.

Container

Obtém o IContainer que contém o Component.

(Herdado de Component)
CustomPlaces

Obtém a coleção de locais personalizados para esta instância de FileDialog.

DefaultExt

Obtém ou define a extensão de nome de arquivo padrão.

DereferenceLinks

Obtém ou define um valor que indica se a caixa de diálogo retorna o local do arquivo referenciado pelo atalho ou se ele retorna o local do atalho (.lnk).

DesignMode

Obtém um valor que indica se o Component está no modo de design no momento.

(Herdado de Component)
Events

Obtém a lista de manipuladores de eventos que estão anexados a este Component.

(Herdado de Component)
FileName

Obtém ou define uma cadeia de caracteres que contém o nome do arquivo selecionado na caixa de diálogo de arquivo.

FileNames

Obtém os nomes de arquivo de todos os arquivos selecionados na caixa de diálogo.

Filter

Obtém ou define a cadeia de caracteres do filtro de nome de arquivo atual, que determina as opções que aparecem na caixa “Salvar como tipo de arquivo” ou “Arquivos do tipo” caixa na caixa de diálogo.

FilterIndex

Obtém ou define o índice do filtro selecionado no momento na caixa de diálogo do arquivo.

InitialDirectory

Obtém ou define o diretório inicial exibido pela caixa de diálogo de arquivo.

Instance

Obtém o identificador de instância do Win32 para o aplicativo.

OkRequiresInteraction

Obtém ou define um valor que indica se o botão OK da caixa de diálogo está desabilitado até que o usuário navegue pelo modo de exibição ou edite o nome do arquivo (se aplicável).

Options

Obtém os valores para inicializar o FileDialog.

RestoreDirectory

Obtém ou define um valor que indica se a caixa de diálogo restaura o diretório para o diretório selecionado anteriormente antes de fechar.

ShowHelp

Obtém ou define um valor que indica se o botão Ajuda é exibido na caixa de diálogo de arquivo.

ShowHiddenFiles

Obtém ou define um valor que indica se a caixa de diálogo exibe arquivos ocultos e do sistema.

ShowPinnedPlaces

Obtém ou define um valor que indica se os itens mostrados por padrão no painel de navegação do modo de exibição são mostrados.

Site

Obtém ou define o ISite do Component.

(Herdado de Component)
SupportMultiDottedExtensions

Obtém ou define se a caixa de diálogo dá suporte a exibir e salvar arquivos que têm várias extensões de nome de arquivo.

Tag

Obtém ou define um objeto que contém dados sobre o controle.

(Herdado de CommonDialog)
Title

Obtém ou define o título da caixa de diálogo do arquivo.

ValidateNames

Obtém ou define um valor que indica se a caixa de diálogo aceita somente nomes de arquivo Win32 válidos.

Métodos

CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.

(Herdado de MarshalByRefObject)
Dispose()

Libera todos os recursos usados pelo Component.

(Herdado de Component)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo Component e opcionalmente libera os recursos gerenciados.

(Herdado de Component)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.

(Herdado de MarshalByRefObject)
GetService(Type)

Retorna um objeto que representa um serviço fornecido pelo Component ou pelo seu Container.

(Herdado de Component)
GetType()

Obtém o Type da instância atual.

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

Define o procedimento de gancho de caixa de diálogo comum que é substituído para adicionar uma funcionalidade específica à caixa de diálogo do arquivo.

InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.

(Herdado de MarshalByRefObject)
OnFileOk(CancelEventArgs)

Aciona o evento FileOk.

OnHelpRequest(EventArgs)

Aciona o evento HelpRequest.

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

Define o procedimento da janela de proprietário que é substituído para adicionar a funcionalidade específica a uma caixa de diálogo comum.

(Herdado de CommonDialog)
Reset()

Redefine todas as propriedades para seus valores padrão.

RunDialog(IntPtr)

Especifica uma caixa de diálogo comum.

ShowDialog()

Executa uma caixa de diálogo comum com um proprietário padrão.

(Herdado de CommonDialog)
ShowDialog(IWin32Window)

Executa uma caixa de diálogo comum com o proprietário especificado.

(Herdado de CommonDialog)
ToString()

Fornece uma versão de cadeia de caracteres deste objeto.

Eventos

Disposed

Ocorre quando o componente é disposto por uma chamada ao método Dispose().

(Herdado de Component)
FileOk

Ocorre quando o usuário clica no botão Abrir ou Salvar na caixa de diálogo do arquivo.

HelpRequest

Ocorre quando o usuário clica no botão Ajuda em uma caixa de diálogo comum.

(Herdado de CommonDialog)

Aplica-se a

Confira também