已知文件所在的盘符(例如:D盘)和完整的文件名(带后缀),怎样在存储过程中获取该文件所在的绝对路径?
举例说明:已知文件 a.txt 的绝对路径为 D:\文件夹1\文件夹2\文件夹3\a.txt ,现已知文件名 a.txt 和 文件在D盘 ,怎样在存储过程中获取该文件所在的绝对路径 D:\文件夹1\文件夹2\文件夹3\
谢谢!
存储过程 文件 绝对路径
举例说明:已知文件 a.txt 的绝对路径为 D:\文件夹1\文件夹2\文件夹3\a.txt ,现已知文件名 a.txt 和 文件在D盘 ,怎样在存储过程中获取该文件所在的绝对路径 D:\文件夹1\文件夹2\文件夹3\
谢谢!
存储过程 文件 绝对路径
create table #tb(fpath varchar(100))
insert into #tb(fpath) values('D:\文件夹1\文件夹2\文件夹3\a.txt')
insert into #tb(fpath) values('D:\文件夹1\文件夹2\文件夹3\b.txt')
insert into #tb(fpath) values('D:\文件夹1\文件夹2\文件夹3\c.txt')declare @filename varchar(10)
set @filename='a.txt'select fpath=REPLACE(fpath, '\'+@filename,'')
from #tb
where left(fpath,3)='D:\' and fpath like '%\'+@filename/*
fpath
D:\文件夹1\文件夹2\文件夹3
*/
--文件名找绝对路径應該沒有這樣的邏輯,因為同一文件名可以存在於多個绝对路径--檢測文件名是否存在的代碼倒是有,如下:
declare @foldername nvarchar(255)
declare @r int
declare @s nvarchar(255)SET @foldername='c:\test.txt'
set @s = 'dir ' + @foldername
exec @r=xp_cmdshell @s,no_outputif @r = 0
print @foldername+ '存在'
else
print @foldername+ '不存在'
还是换其他的实现方法吧。