Trabalhando com diretório e arquivo
Quer listar diretório e os arquivos dentro, então acesse.
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.
Subscribe ecode10.com
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
You can cancel anytime.
Log In