i have this functions for get available free space on device.
public static Boolean IsAvailableFreeSpace(long size)
    {
        long availableFreeSpace = (long)0;
        using (IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication())
        {
            availableFreeSpace = userStoreForApplication.AvailableFreeSpace;
        }
        return ((long) availableFreeSpace < (long)size) ? false : true;
    }
in a main of my project i have a "global" variable boolean and I'll see if I have more than 10 MB(52428800 byte)
  Booelan AvailableFreeSpace = IsAvaiabileFreeSpace(52428800); 
in a particular device users have a 10/12GB free space and my function returns FALSE!! Why?