Usando o controle OpenFileDialog no VB.net 2010

Neste artigo vamos entender um pouco o uso do controle OpenFileDialog que faz parte dos controles de Diálogos existentes na caixa de ferramenta da IDE do Visual Studio.

Na figura1 abaixo é mostrado onde podemos encontrar os controles de diálogo (Dialogs), onde podemos observar o OpenFileDialog, o qual usaremos neste artigo.

 

 

Figura1. Toolbox – exibindo o controle OpenFileDialog

 

Usamos o controle OpenFileDialog para localizar e selecionar arquivos em um computador.


Podemos criar um controle OpenFileDialog em tempo de projeto arrastando o controle da caixa de ferramentas e soltando no formulário Windows Forms.

 

Entendendo as propriedades do controle OpenFileDialog

Depois de incluir o controle no formulário podemos definir as propriedades do controle na janela de propriedades.Vejamos a seguir as principais propriedades deste controle

 


InitialDirectory - Representa o diretório a ser exibido quando a janela de diálogo aparecer pela primeira vez.
Ex: openFileDialog1.InitialDirectory = @"C:\";

Se a propriedade RestoreDirectory for definida como True a caixa de diálogo restaura o diretório atual antes de ser fechada.

Ex: openFileDialog1.RestoreDirectory = true;

 

 

Title - Usada para definir ou atribuir um título a janela de diálogo: Ex: openFileDialog1.Title = "Localizar Arquivos";

 

Default Extension - Representa a extensão padrão do arquivo a ser localizado: Ex: openFileDialog1.DefaultExt = "txt";

 

Filter - Representa o filtro da janela de diálogo que será usado para filtrar o tipo de arquivos a serem carregados durante a localização. O exemplo abaixo exibe somente arquivos com extensão .txt: Ex: openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

 

FilterIndex - Representa o indíce do filtro atualmetne selecionado na janela de diálogo: Ex:openFileDialog1.FilterIndex = 2;

 

ChecFileExists - Indica se a janela de diálogo exibirá um aviso se o usuário especificar um nome de arquivo inexistente - Ex: openFileDialog1.CheckFileExists = true;

 

CheckPathExists - Indica se a janela de diálogo exibirá um aviso se o usuário especificar um caminho inexistente - Ex: openFileDialog1.CheckPathExists = true;

 

FileName - Representa o nome do arquivo selecionado na janela de diálogo. Ex: textBox1.Text = openFileDialog1.FileName;

 

MultiSelect - Se esta propriedade for definida como True pode-se selecionar mais de um arquivo e FileNames representará todos
os arquivos selecionados. Neste caso deve-se usar um laço foreach para exibir os arquivos selecionados.   this.openFileDialog1.Multiselect = true;


ReadyOnlyChecked - Indica se a caixa de verificação estará selecionada: Ex: openFileDialog1.ReadOnlyChecked = true;

 

ShowReadyOnly - Indica se a caiaxa de verificação read-only estará disponível ou não. Ex: openFileDialog1.ReadOnlyChecked = true;


Para entender melhor o uso do OpenFileDialog crie uma aplicação Windows Forms, no Form1 inclua os seguintes controles:

OpenFileDialog - Name= ofd1;

TextBox - Name = txtArquivos

Button - Name = btnSelecionarArquivos

O Form1 deverá possuir o seguinte layout

 

 

Vamos definir os namespaces usados no projeto conforme abaixo:

imports System
imports System.IO
imports System.Security

A seguir no evento Click do botão de comando - btnSelecionarArquivos - inclua o código abaixo:

 

Private Sub BtnProcurar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelecionarAquivos.Click

        'define as propriedades do controle

        'OpenFileDialog

        Me.ofd1.Multiselect = True

        Me.ofd1.Title = "Selecionar Arquivos"

        ofd1.InitialDirectory = "C:\"

        'filtra para exibir somente arquivos de imagens

        ofd1.Filter = "Texts (*.txt;*.csv)|*.txt;*.csv|" & "All files (*.*)|*.*"

        ofd1.CheckFileExists = True

        ofd1.CheckPathExists = True

        ofd1.FilterIndex = 2

        ofd1.RestoreDirectory = True

        ofd1.ReadOnlyChecked = True

        ofd1.ShowReadOnly = True

 

        Dim dr As DialogResult = Me.ofd1.ShowDialog()

        If dr = System.Windows.Forms.DialogResult.OK Then

            ' Le os arquivos selecionados

            For Each arquivo As [String] In ofd1.FileNames

                txtArquivos.Text += arquivo & vbNewLine

 

                Try

                    ' Aqui fica o que deve ser executado com os arquivos selecionados.

                Catch ex As SecurityException

                    ' O usuário  não possui permissão para ler arquivos

                    MessageBox.Show((("Erro de segurança Contate o administrador de segurança da rede." & vbLf & vbLf & "Mensagem : ") + ex.Message & vbLf & vbLf & "Detalhes (enviar ao suporte):" & vbLf & vbLf) + ex.StackTrace)

                Catch ex As Exception

                    ' Não pode carregar o arquivo (problemas de permissão)

MessageBox.Show(("Não é possível exibir a imagem : " &       arquivo.Substring(arquivo.LastIndexOf("\"c))))

                End Try

            Next

        End If

    End Sub

Executando o projeto e clicando no botão procurar veremos o seguinte resultado:

 


Podemos concluir que o uso do OpenFileDialog é bastante útil quando necessitamos criar uma aplicação onde precisamos selecionar algum tipo de arquivo ou até mesmo em uma função de backup.