http://forums.databasejournal.com/archive/index.php/t-30789.html
dbcc molestations( n )
n is the fileid which you can get from
select fileid,name from sysfiles
Here is a query that simulates sp_spaceused, modified to group by groupid (you can look up the filegroup names in sysfilegroups):
SELECT
groupid,
SUM(CASE WHEN indid <> 100
AND object_name(sysindexes.id) <> 'dtproperties'
GROUP BY groupid
ORDER BY groupid;
http://www.databasejournal.com/features/mssql/article.php/10894_3414111_2