判断所指定的文件或目录(文件夹)是否存在存储过程

 

a--判断文件是否存在,存在则删除.

IF OBJECT_ID('p_QueryCheckFile','P') IS NOT NULL

    DROP PROC p_QueryCheckFile

GO

CREATE PROC p_QueryCheckFile

    @path NVARCHAR(1000),

    @fname NVARCHAR(250)

AS

 

--检查文件是否已经存在

IF RIGHT(@path,1)<>'/'

    SET @path=@path+'/'

 

IF OBJECT_ID('temp_xp_fileexist','U') IS NOT NULL

    BEGIN

       DROP TABLE temp_xp_fileexist

    END

       

CREATE TABLE temp_xp_fileexist(a BIT,b BIT,c BIT)

DECLARE @sql NVARCHAR(1000)

SET @sql=@path+@fname

 

 

INSERT INTO temp_xp_fileexist

    EXEC master..xp_fileexist @sql

 

/*

xp_fileexist 返回的三个列,   分别代表

 

文件已存在  文件是目录  父目录已存在 

  -----       -----       ------  

  0               0               1  

*/

 

IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE a=1)

    --文件已经存在

    BEGIN

       DECLARE @del NVARCHAR(200)

       SELECT @del ='del '+@sql

       EXEC  master..xp_cmdshell  @del

       PRINT '相关文件已删除!'

    END

ELSE IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE b=1)

    BEGIN

       PRINT '存在文件目录!'

    END

ELSE IF EXISTS(SELECT 1 FROM temp_xp_fileexist WHERE b=1)

    BEGIN

       PRINT '存在文件父目录!'

    END

ELSE

    PRINT '您所指定的文件不存在!'

GO

EXEC p_QueryCheckFile 'E:/soft/','test.rar'

/*

output

--------------

NULL

 

(1 行受影响)

 

相关文件已删除!

*/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值