• Check this query:

    selectdf.name AS LogicalFileName

    , isnull(fg.name, 'Log') AS FilegroupName

    , df.physical_name AS PhysicalOSName

    , (df.size * 8 / 1024) AS SizeMBs

    , (fileproperty(df.name, 'SpaceUsed') / 128) AS SpaceUsedMBs

    , (df.size * 8 / 1024) - (fileproperty(df.name, 'SpaceUsed') / 128) AS FreeMBs

    , case df.max_size

    when 0 then 'No Growth'

    when -1 then 'Unlimited'

    when 268435456 then '2TB'

    else cast(df.max_size / 128 AS VARCHAR(10)) + ' MBs'

    end AS MaxFileSize

    , case df.is_percent_growth

    when 0 then cast(df.growth / 128 AS VARCHAR(10)) + ' MBs'

    else CAST(df.growth AS VARCHAR(10)) + ' %'

    end AS Growth

    ,cast(cast((fileproperty(df.name, 'SpaceUsed') / 128) as numeric(20,2)) /

    cast(df.size / 128 as numeric(20,2))

    * 100 as numeric(20,2)) as PercentUsed

    from sys.database_files df left outer join sys.filegroups fg ON df.data_space_id = fg.data_space_id

    order by df.type