Как правильно получить размер файла android.net.Uri?

У меня есть android.net.Uri, указывающий на файл, из которого мне нужно определить размер файла. В настоящее время это делается с помощью запроса на contentResolver (я использую Xamarin, так что это C #):

var cursor = contentResolver.Query(uri, new string[] {
    Android.Provider.OpenableColumns.Size,
    Android.Provider.OpenableColumns.DisplayName 
}, null, null, null);
cursor.MoveToFirst();
size = cursor.GetLong(0);
fileName = cursor.GetString(1);
cursor.Close();

Это работает большую часть времени, но для некоторых файлов значение кажется немного больше, чем правильный размер файла (я использую Total Commander в качестве ссылки).

Должен быть лучший способ сделать это, мне действительно нужна точная информация о размере и, поскольку файлы довольно большие, я не могу сначала прочитать их в память. И почему мой подход дает неверные результаты?

Заранее спасибо за помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос