完全にテストされておらず、頭のてっぺんからタイプされています...
DECLARE @FOLDER VARCHAR(200)
DECLARE @TOPID AS INT
DECLARE @MYID As int
CREATE TABLE #tmp
(
    [id] INT,
    [path] VARCHAR(50)
)
DECLARE tempCursor CURSOR FOR SELECT id FROM albums ORDER BY id
OPEN tempCursor
FETCH NEXT FROM tempCursor INTO @TOPID
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @FOLDER = ''
    SET @MYID = @TOPID
    WHILE @MYID is not null
    BEGIN
        SELECT @MYFOLDER = foldername FROM albums WHERE id = @MYID
        SET @FOLDER = @MYFOLDER + '/' + @FOLDER
        SELECT @MYID = parent FROM albums WHERE id = @MYID
    END
    INSERT INTO #tmp
    SELECT @TOPID, @FOLDER
    FETCH NEXT FROM tempCursor INTO @TOPID
END
CLOSE tempCursor
DEALLOCATE tempCursor
SELECT * FROM #tmp
DROP TABLE #tmp
これで、少なくともパス名を取得する方法がわかります。ファイル名が保存されている場所を指定したことはありません。
ところで、これは遅くなるでしょう。カーソルを使うのは嫌いです...