Geral

Listando arquivos de um diretório com Visual C#

Ola Pessoal,

Uma pequena dica técnica… Para que precisar trabalhar com arquivos e diretórios o .NET Framework possui grandes recursos dentro de seu Namespace: System.IO.

Agora vou dar um pegueno exemplo de como listar os arquivos de um determinado diretório fisíco. Para isso a primeira ação que devemos executar é importar nosso NameSpace:

using System.IO;

Logo em seguida iremos utilizar as classes DirectoryInfo e FileInfo, para que possamos listar os arquivos. Abaixo segue um exemplo comentado sobre o assunto:

//Marca o diretório a ser listado
DirectoryInfo diretorio = new DirectoryInfo(@"C:");
//Executa função GetFile(Lista os arquivos desejados de acordo com o parametro)
FileInfo[] Arquivos = diretorio.GetFiles("*.*");

//Começamos a listar os arquivos
foreach (FileInfo fileinfo in Arquivos)
{
    Response.Write(fileinfo.Name);
}

Bom pessoal, espero que aproveitem mais esta dica!


Bookmark and Share

14 Comments

  1. Oi galera eu estava pesquisando a respeito e encontrei vários colegas com problema para sobre como capturar as informações de alteração e acesso dos arquivos do diretório.

    Eu fiz desta forma espero ter ajudado.

    DirectoryInfo Repositorio = new DirectoryInfo(@”C:Repositorio_jarvis”);
    FileInfo[] Arquivos = Repositorio.GetFiles(“*.*”);

    foreach (FileInfo fileinfo in Arquivos)
    {

    string Criado = fileinfo.CreationTime.ToString(“dd/MM/yyyy HH:mm:ss”);
    string Modificado = fileinfo.LastWriteTime.ToString(“dd/MM/yyyy HH:mm:ss”);
    string Acessado = fileinfo.LastAccessTime.ToString(“dd/MM/yyyy HH:mm:ss”);

    Console.WriteLine(“|Nome do arquivo:”+fileinfo.Name + “n|criação:” + Criado +”| Modificação:”+ Modificado +”| Acessado:” + Acessado);
    }

  2. Olá,

    estou tendo um problema com este método:
    quando tento listar os arquivos, dá o erro:

    The Microsoft Access database engine cannot open or write to the file ”. It is already opened exclusively by another user, or you need permission to view and write its data.

    Vi que um dos arquivos do meu diretório eu não consigo abrir, dá o erro:
    Arquivo em uso. Bloqueado por CMDAOnly

    Como faço pra listar os arquivos, ignorando os que não tenho permissão ou estão abertos?

  3. Pessoal! Eu estou tento problemas para listar os arquivos / diretórios de um caminho não local (da rede). Com o método mais tradicional Directory.GetDirectories(“meu-caminho”) eu recebo a seguinte mensagem de erro: “The UNC path should be of the form servershare.” Porém, como eu vou saber o nome da pasta, se o que eu quero é justamente saber quais pastas existem no diretório?

    Todos os posts que eu encontrei sobre caminho de rede eram com FolderBrowserDialog e mesmo assim para mim não funciona, pois o meu Environment.SpecialFolder não lista a opção 18 (Network Neighborhood).

    Alguém ai pode dar um help?

  4. Caso eu queira listar os arquivos de um diretorio compartilhado em um servidor usando credenciais de usuario local do servidor, por exemplo:

    Meu servidor de arquivos: 10.10.10.10arquivos

    Dominio: MeuServidor
    Usuario: MeuUsuario
    Senha: MinhaSenha

    Usando DirectoryInfo da erro de login.

    Existe alguma solucao runtime?

  5. Ola, eu quando corro o programa para testar diz-me que o caminho no directoria (C:Program Files (x86)Common FilesMicrosoft SharedDevServerimgreferences) nao existe, eu tenho isto dentro do meu programa mas mais tarde vou passalo para um servidor e nao queria dar o caminha todo mas sim apenas a pasta onde estava, essa pasta esta dentro do meu programa, como faço?

Deixe uma resposta