sábado, 12 de noviembre de 2016

Listar archivos en Sql Server

Bases de Datos

SQL Server

Listar archivos en un directorio

Muchas veces nos vemos en la necesidad de obtener los nombres de archivos de un directorio.  En Sql Server tenemos algunas alternivas, pero en esta oportunidad vamos utilizar la instrucción xp_dirtree. Aunque a futuro ya no será soportado vale tener alguna referencia.


xp_dirtree tiene tres parámetros:
  1. directory:  Indica el directorio donde va a leer los archivos, por ejemplo 'c:\data'.
  2. depth: Esto le dice al procedimiento almacenado el número de niveles de subcarpeta para mostrar. El valor por defecto 0 mostrará todas las subcarpetas.
  3. isfile: Indica si debe mostrar archivos y/o carpetas. El valor por defecto 0 no mostrará ningún archivo.
En el siguiente ejemplo listamos todos los archivos del directorio 'c:\temp\'

EXEC master.sys.xp_dirtree 'C:\Temp\ ',0,1

Si queremos que el resultado se guarde en una tabla temporal para otras tareas entonces procedemos a ejecutarlo de la siguiente manera:

CREATE TABLE #tmpBuscaFiles
           (archivo varchar(255),
            depth integer,
            filetype integer)
INSERT INTO #tmpBuscaFiles
EXEC master.sys.xp_dirtree 'C:\Temp\',0,1

No hay comentarios.:

Publicar un comentario