Trabalhando com Arquivos em C# - Parte 3

Na 3ª e última parte de nossa série de artigos sobre manipulação de arquivos em C# iremos criar caixas de diálogo em nosso Form.


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!


Artigos relacionados