SD Library: Only 31854 bytes available from a 160KB file

Is it possible that the library is using an unsigned int where it should be using an unsigned long?

31,854 = 0x7C6E

162,926 = 0x00027C6E = 159.1 * 1024 = "160k"