Desenvolvimento - C#

Trabalhando com diretório e arquivo

Veja aqui como trabalhar com diretório no Windows Form, usando a linguagem C#.NET. A idéia no geral é pegar um caminho específico, buscar todos os diretórios e os arquivos destes diretórios listados.

por Mauricio Junior



Trabalhando com diretório e arquivo

                Olá pessoal, hoje gostaria de mostrar e falar como trabalhar com diretório no Windows Form, usando a linguagem C#.NET. A idéia no geral é pegar um caminho específico, buscar todos os diretórios e os arquivos destes diretórios listados.

Usado: Visual Studio .NET 2010, C#.NET, Windows Form.

                Foram utilizadas as classes System.Text; System.Windows.Forms e System.IO, para o devido funcionamento da aplicação.

                O primeiro passo é definir o primeiro diretório, ou seja, o diretório principal onde podem existir outros diretórios e arquivos.  Foi criado aplicativo do tipo Windows Form como exemplo. (Imagem 1)

Imagem 1

                Dentro do Form1.cs adicionei a variável chamada caminho (Code 1)

string caminho = @"C:\Temp\PastaPrincipal\";

Code 1

                Note que no final do valor, a variável possui a barra indicando ao código que é um diretório.  Dentro do form_load do aplicativo comecei a escrever o restante do código. Como é um programa teste, procurei não utilizar camadas, mas recomendo que utilize no caso de uma aplicação mais robusta.

                Veja as primeiras linhas do form_load. (Code 2)

private void Form1_Load(object sender, EventArgs e)

        {

            try

            {

                FileInfo TheFile = new FileInfo(caminho);

                DirectoryInfo info = TheFile.Directory;

...

Code 2

                A primeira linha onde utilizo FileInfo, pego o caminho em formato específico dentro do código e armazeno na variável TheFile. A segunda linha eu pego o diretório utilizando o DirectoryInfo. (Code 3)

DirectoryInfo info = TheFile.Directory;

Code 3

                A variável info do tipo DirectoryInfo possui todas as pastas necessárias ou diretórios do caminho indicado. Para pegar mais de um diretório, basta fazer um foreach. Code 4

foreach (var _directory in info.GetDirectories())

               

Code 4

                Note que foi feito o foreach pegando todos os diretórios do caminho principal. O valor da variável foi armazenado dentro do _directory. Dependendo da sua necessidade, você pode acrescentar mais funcionalidades sem qualquer problema.

                O passo seguinte é simples, basta pegar todos os arquivos dentro da pasta e fazer um novo foreach.  (Code 5)

foreach (var _directory in info.GetDirectories())

{

    //pega a lista de arquivos

    FileInfo[] NextFile = _directory.GetFiles("*.txt");

                       

    foreach (var _file in NextFile)

    {

       //pega o nome do arquivo

       string _nomeArquivo = _file.Name.ToString();

    }

}

Code 5

                Note que o Code 5 mostra que existe um for dentro de outro. Um é para pegar todos os diretórios, outro para pegar todos os arquivos .txt. Lembro que pode ser qualquer outro tipo de arquivo, como xml, jpg e outros mais. Dentro do for do arquivo, deixei um exemplo onde armazeno o nome do arquivo em uma variável.

                Deixo outras dicas como usar try, catch, verificar linha a linha o que foi feito e se possível usar o debug da ferramenta. Essa funcionalidade pode ser usada para copiar dados do arquivo, renomear, apagar e muito mais.

                Espero que tenha gostado e qualquer dúvida pode entrar em contato.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org