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 JuniorTrabalhando 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.