Trabalhando com diretório e arquivo


por Mauricio Junior em 1/1/2011 0

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.

voltar   comente  subir

 
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. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.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



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Dica para acrescentar valor
Converter DataView em DataTable
Descobrindo os dias do mês e final de semana
Escrever log de erro e warning
Prepare o Sql Server para o VS 2005
Vídeo aula explicando o que é o FreeTextBox e como utilizar em seu projetos ASP.NET.
Escrevendo e Controlando Log de Erro
Desenvolvendo com Atributos (Javascript) e StringBuilder
Copiando Script
Internet começa a ter ultra velocidade no Brasil
Nova geração HTML
Visual Source Safe - Série 1
Visual Studio Toolbox Performance
Windows Phone 7.1 Mango
Token e Sessão Corrente com C#.NET
Orientação a Objetos com Visual Studio.NET (parte 2)
Primeiros passos para um programador - Apple
Sistema ASP 3.0 utilizando 3 camadas – Parte 1
Cache
Sistema iGas - Controle de Gasolina
Vídeos para download
Evento em Brasília de Tecnologia
Promoções de livros móveis .NET
Validator no VS 2005
Criando Sections Customizados
User Control Windows executando no Internet Explorer (parte 2 de 2)
Paginação no GridView
Gravando Erros com Exception - Parte I
Comunicação .NET e VB 6.0 – Parte II - usando Visual Studio.NET 2005
C# - Da introdução ao primeiro projeto-1
Trabalhando com Ipersonate e Web
Trabalhando com GridView e BoundField escondido
Método MD5
Mais um Windows Phone 7
Web 2.0 - A máquina somos nós