您的位置:首页 > 数据库

SQL遍历文件夹 / 文件,返回文件夹列表信息

2015-08-11 21:28 351 查看
/*
EXEC master.dbo.xp_cmdshell 'copy c:\a.txt d:\log\'    --- Copy

EXEC master.dbo.xp_subdirs 'd:\'  --- 显示指定目录下有哪些文件夹
EXEC master.dbo.xp_dirtree 'd:\', @depth = 1   -- 显示指定目录有哪些子目录 (@depth = 1 表示只遍历深度为 1 的目录;此变量不填写,就遍历所有子目录)

EXEC master.dbo.xp_cmdshell 'dir /b/s d:'
*/
DECLARE @Path nvarchar(260)SET @Path = 'C:\Downloads'IF RIGHT(@Path, 1) <> '\'SET @Path = @Path + '\'IF OBJECT_ID('tempdb..#File') IS NOT NULLDROP TABLE #FileCREATE TABLE #File(id int IDENTITY,  --编号directory nvarchar(260),  --路径depth int, --深度,相对与@pathIsFile bit )--0文件夹1文件名成INSERT #File EXEC master.dbo.xp_dirtree@path = @path,@depth = 0,@file = 1DECLARE @depth int, @depthMax intUPDATE #File SETdirectory = @Path + directoryWHERE depth = 1SELECT@depth = 2,@depthMax = MAX(depth)FROM #FileWHILE @depth <= @depthMaxBEGINUPDATE A SETdirectory = (SELECT TOP 1directoryFROM #FileWHERE depth = @depth - 1AND IsFile = 0AND id < A.idORDER BY id DESC) + N'\' + directoryFROM #File AWHERE depth = @depthSET @depth= @depth + 1ENDSELECT * FROM #File

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: