quinta-feira, 20 de agosto de 2009

Listar arquivos do diretório.

Para listar os arquivos de alguma pasta do servidor ou de outra maquina da rede, a partir do SQLServer 2000 é possivel usar uma das Stored Procedures não documentada.

Há outras opções, entre elas utilizando a xp_cmdshell e utilizando FSO. Mas de longe esta é a mais simples.

No exemplo a seguir, ele vai listar todos os arquivos e pasta do c:\

Parametros:

1) Pasta inicial: caminho da pasta inicial para pesquisa
2) Nivel da busca: 1 é somente a pasta inicial, 0 ou Null são todas as pastas a partir da pasta inicial informada, qualquer valor > 1 é a quantidade de niveis de subpastas a partir da pasta inicial informada.
3) Inclui arquivo: 1 Inclui arquivos e pastas; 0 ou Null só pastas.

EXEC master.dbo.xp_dirtree N'c:\', 1, 1

O retorno é:

1) SubDirectory - Nome da pasta ou arquivo
2) Depth - Nivel do arquivo em relação à pasta inicial da pesquisa.
3) File - 1 para arquivo e 0 para Pasta


Ela vale tambem para diretórios de maquinas da rede, desde que estejam compartilhadas (não precisam estar mapeadas)

EXEC master.dbo.xp_dirtree N'\\Servidor_de_rede\comum', 1, 1

Um comentário: