Hi,
The problem is the System.IO methods like DirectoryInfo.GetDirectories does not see virtual directories. So the only way it can work is with an expected path so we can tell it the expected virtual path that maps to the virtual directory, specifically it can work if you copy the /media folder to a commoi\n location, then remove the previous media folder then create a virtual directory at /Data/Sites/[SiteID]/media (ie create a virtual directory named media below the real folder /Data/Sites/[SiteID]
Then it also must be configured so that admin users can only access the file system starting at that point by adding this in user.config:
<add key="ForceAdminsToUseMediaFolder" value="true" />
This is because if we start at a higher level it won't see the media folder as a child folder since it is now virtual, but if we start at the media folder it can see the files and folders below it.
It isn't going to work using arbitrary virtual folders.
Hope that helps,
Joe