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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo