I have this working on my '18 R using a 512GB SD card (SanDisk Extreme Pro 512 GB SDXC UHS-I Card (SDSDXPA-512G-G46).)
Music is on the card in folders labeled 0-10 (for bands with numbers in their names) and on through A-B, C-D, etc. so that the folders adhere to the "rules" in the owner's manual which is "Maximum of 1,000 folders and 30,000 files on a data carrier." So you have to make sure you have less than 1000 folders. I had to take the time to get that right but I have all my music on one SD card. Even though the manual says a max of 256GB, a 512GB card works in my car at least.
My playlist files also follow the "rules" (Playlists no larger than 20 KB and with no more than 1,000 entries.) but I can't get more than about 180 songs listed before I go over 20kb! So I have lots of playlist files because I have about 18,000 songs on my SD card.
My playlist files look like this:
#EXTM3U
#EXTINF:212,Colvin, Shawn - I Don't Know You
\Co-Cu\Colvin, Shawn\All Fall Down\08 I Don't Know You.flac
#EXTINF:199,Dance Hall Crashers - Whiskey & Gin
\Da-De\Dance Hall Crashers\Honey, I'm Homely!\08 Whiskey & Gin.flac
#EXTINF:244,Camera Obscura - Tears for Affairs
\Ca-Cl\Camera Obscura\Let's Get Out of This Country\02 Tears for Affairs.mp3
So my file is different from mwaites' in that my #EXTINF lines are "artist - song" rather than "song - artist". Notice my playlists are randomized so they are not in 100% alphabetical order which is why you see this snippet of 3 songs all pointing to different folders. And my folders/songs are "alphabet folder"\Artist\Album\Song.
Don't forget to name the file filename.m3u or m3u8, not .txt. Mine are m3u8 as I used Winamp to create the lists and that's what it saves. I created a playlist of all songs and used Excel to figure out a way to randomize the entire list (the random function in this car sucks) and, after getting that done, I forgot to rename them from .txt and got "no playable files found" but renamed them properly back to m3u8 and the playlists show up at the bottom of the list of folders when viewing the root of the SD card. Just select one and it plays.
Definitely not easy but it does work. 180 songs per playlist is about 9 hours of music and, as far as I can tell, even though the playlists are already randomized, I believe I can select a playlist and press the random button and randomize them more. But for now I'll let them play in the order I randomized them.