Olá pessoal, nesta última parte de nossa série de artigos sobre manipulação de arquivos em C# iremos criar caixas de diálogo em nosso Form. Acompanhe:

Faço este artigo com base nas videoaulas de Bruno Belizário, do Portal Linha de Código, mediante autorização do mesmo. Acompanhem o passo-a-passo:

Lembrando que para estes artigos estamos usando as classes FileStream, StreamReader e StreamWriter, todas contidas no namespace System.IO, que é específico para manipular arquivos.

Nos 2 últimos artigos, não tivemos interação com o usuário, já que definimos o caminho padrão de nosso arquivo texto. Neste artigo, faremos diferente usando caixas de diálogo.

Como você pode ver abaixo, podemos usar as caixas de diálogo pelo modo visual.


Mais como o intuito do artigo (e da videoaula em que me baseio) é de fazer tudo via código, então continuaremos desta forma.

Na página de códigos altere a variável que contém o caminho físico do arquivo para que a mesma receba um valor nulo:

private string strPathFile = null;

Vamos começar trabalhando com o componente FolderBrowserDialog, que nada mais do que uma janela de diálogo onde podemos trabalhar com pastas.

Altere o método CriarArquivo, como abaixo (veja as modificações nos comentários):

private void Criar()

        {

            try

            {

                //Instancio o FolderBrowserDialog e o chamo pelo método ShowDialog

                FolderBrowserDialog objFBD = new FolderBrowserDialog();

                //Chamo o método sss para que esteja habilitado o botão para criar uma nova pasta

                objFBD.ShowNewFolderButton = true;

                objFBD.ShowDialog();

 

                //Crio uma variável que irei definir o caminho onde vou salvar meu arquivo de texto

                //Ela irá receber meu objFBD com o método SelectedPath, concatenado com meu arquivo

                string strPath = objFBD.SelectedPath + @"\Arquivo.txt";

 

                //Usarei a cláusula using como boas práticas de programação em todos os métodos

                //Instancio a classe FileStream, uso a classe File e o método Create para criar o

                //arquivo passando como parâmetro a variável strPathFile, que contém o arquivo

 

                //Troco a variável strPathFile pela strPath, que está definindo o caminho do meu arquivo

                using (FileStream fs = File.Create(strPath))

                {

                    //Crio outro using, dentro dele instancio o StreamWriter (classe para gravar os dados)

                    //que recebe como parâmetro a variável fs, referente ao FileStream criado anteriormente

                    using (StreamWriter sw = new StreamWriter(fs))

                    {

                        //Uso o método Write para escrever algo em nosso arquivo texto

                        sw.Write("Texto adicionado ao exemplo!");

                    }

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

 

            //Se tudo ocorrer bem, exibo a mensagem ao usuário.

            MessageBox.Show("Arquivo criado com sucesso!!!");

        }

Agora salve e compile. Clique no botão Criar Arquivo e veja a caixa de diálogo que se abriu:


Escolha a pasta C:\temp e clique em OK.


Agora faça o teste com o botão Criar nova pasta e salve num lugar diferente da pasta temp:


Ele salva da mesma forma e exibe a mensagem de confirmação:


Assim podemos escolher onde desejamos salvar nossos arquivos ou até criar pastas novas para eles.

Agora vamos usar o componente OpenFileDialog em nosso método Abrir, já que da forma que está ele abre um local fixo sem opção do usuário escolher de qual caminho deseja abrir o arquivo. Então altere o método Abrir para o seguinte:

private void Abrir()

        {

            try

            {

                //Crio uma variável que irei definir o caminho onde vou abrir meu arquivo e a inicializo nula

                string strPath = null;

 

                //Instancio o OpenFileDialog e o chamo pelo método ShowDialog

                OpenFileDialog objOFD = new OpenFileDialog();

                objOFD.ShowDialog();

 

                //Atribuo minha variável strPath ao atributo FileName, que

                //representa o arquivo escolhido pelo usuário na caixa de diálogo

                strPath = objOFD.FileName;

 

                //Verifico se o arquivo que desejo abrir existe e passo como parâmetro a variável respectiva

                //Troco as variáveis strPathFile pela strPath, que está definindo o caminho do meu arquivo

                if (File.Exists(strPath))

                {

                    //Se existir "starto" um processo do sistema para abrir o arquivo e, sem precisar

                    //passar ao processo o aplicativo a ser aberto, ele abre automaticamente o Notepad

                    System.Diagnostics.Process.Start(strPath);

                }

                else

                {

                    //Se não existir exibo a mensagem

                    MessageBox.Show("Arquivo não encontrado!");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

Salve e compile. Clique no botão Abrir Arquivo e veja que irá aparecer a caixa de diálogo que a gente instanciou. 


Selecione o arquivo e clique em Abrir. Você verá o arquivo em seguida:


Assim finalizo esta série de artigos usando arquivos e caixas de diálogo.

Para quem se interessar, disponibilizo o código fonte desse projeto aqui.

Créditos à Bruno Belizário, que fez as videoaulas e ao Portal Linha de Código, por onde pude baixá-las (mediante assinatura), estudá-las e posteriormente fazer este artigo.

Quaisquer dúvidas mandem emails para wellingtonbalbo@gmail.com ou deixem nos comentários deste artigo que responderei o mais rápido possível.

Até o próximo artigo!