SD Card - Read available space?

Note that uint32_t is too small for free byte count for cards larger than 4GB.

I just went through the Arduino data types. The two biggest highest max values I found are unsigned int and unsigned long which both have a max value of approximately 4 GB.

What data type does one use for calculations requiring values greater than 4 GB?

I have 8 GB, 16 GB and 32 GB SD cards and I assume I am not alone.

Thanks!