Dosya/Doküman dizin/üst dizini alma

Selamlar!

Süper bir dokuman buldum. Dosya, Doküman gibi veri girişi yapıldığını varsayalım. Dosyamızın türü, Adı, Dizin gibi filtreleme ihtiyacımız olabilir. Dosya Yolunu ekrana nasıl yazdırılabilir sorusuna lütfen aşağıdaki sorguyu göz atın.

@path değişkenimiz bizim dosya girişimiz olsun.


DECLARE @path VARCHAR(MAX)

SET @path = '/etc/bin/sub/btomer.txt'

SET @path = CASE WHEN CHARINDEX('/', @path) = 1 THEN RIGHT(@path, LEN(@path) - 1) ELSE @path END 

DECLARE 
    @Root       VARCHAR(MAX),
    @fileName   VARCHAR(MAX), 
    @fileRoot   VARCHAR(MAX)

SELECT 
    @Root       = LEFT(@path, CHARINDEX('/', @path) - 1) 
,   @fileName   = RIGHT(@path, CHARINDEX('/', REVERSE(@path)) - 1)
,   @fileRoot   = LEFT(@path, LEN(@path) - LEN(RIGHT(@path, CHARINDEX('/', REVERSE(@path)) - 1)) - 1)


SELECT 
    ROOT                = LEFT(@path, LEN(@Root)) 
,   FileDirectoryRoot   = LEFT(@path, LEN(@path) - (CHARINDEX('/', REVERSE(@fileRoot)) + LEN(@fileName) + 1)    )
,   FileDirectory       = LEFT(@path, LEN(@fileRoot))
,   FileName            = RIGHT(@path, LEN(@fileName)) 

Süper 🙂

Harika değil mi?

Leave a Reply