Trabalhando com Arquivos em C# – Parte 3

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.

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, na Figura 01, podemos usar as caixas de diálogo pelo modo visual:

Figura 01 – Aba Dialogs da Toolbox

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:

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, como mostra a Figura 02:

Figura 02 – Caixa de Diálogo Procurar Pasta

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, como vemos na Figura 03:

Figura 03 – Caixa de Diálogo para criar uma nova pasta

Ele salva da mesma forma e exibe a mensagem de confirmação, como mostra a Figura 04:

Figura 04 – 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 na Figura 05 que irá aparecer a caixa de diálogo que foi instanciada.

Figura 05 – Caixa de Diálogo para Abrir Arquivo

Selecione o arquivo e clique em Abrir. Você verá o arquivo em seguida, na Figura 06:

Figura 06 – Arquivo aberto no Bloco de Notas

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!