Как узнать размер файла на диске

  • Автор темы Автор темы gelu4
  • Дата начала Дата начала

gelu4

Client
Регистрация
11.01.2015
Сообщения
171
Реакции
43
Баллы
28
Возможно ли узнать размер файла на диске?
d67728eb32534adba1579c29e030daed.png

Пробовал этот код:
var file = new System.IO.FileInfo(filePath);
return file.Length;

Получаю верхнее значение. А нужно именно нижнее.
 
Математика.
Вы получаете верхнее значение, определяете целое число Кб (делите значение на 1024), далее делите это число на 4. Если в итоге не целое, добавляете к нему сколько нужно, чтобы получить целое. После этого умножаете полученное число на 1024.
 
  • Оценить
Реакции: Dimionix
Математика.
Вы получаете верхнее значение, определяете целое число Кб (делите значение на 1024), далее делите это число на 4. Если в итоге не целое, добавляете к нему сколько нужно, чтобы получить целое. После этого умножаете полученное число на 1024.
Какая то странная математика получается.
Беру верхнее 113 703/1024, округляю и получаю 111, делю на 4 (кстате, почему именно на 4?), округляю и получаю 28. Умножаю на 1024 и получаю 28.672 wtf?
 
Какая то странная математика получается.
Беру верхнее 113 703/1024, округляю и получаю 111, делю на 4 (кстате, почему именно на 4?), округляю и получаю 28. Умножаю на 1024 и получаю 28.672 wtf?

Вы немного неправильно меня поняли.
Вы получили 111 Кб, его делим на 4 и проверяем, кратно ли число. Если нет, то нужно к 111 добавлять, а не к 28. Т.е. получаем 112, оно делится на 4. Итого 112*1024 = 114688

Почему именно на 4 - а почему по Вашему эти два числа расходятся в значениях? Потому что основной размер кластера = 4 Кб. У Вас видимо именно такой.
 
  • Оценить
Реакции: gelu4 и Dimionix
это глобальная математика 21 века ))
 
Предложи свой вариант, получше.
я не об этом, а о том что ты описал, в математике раньше небыло такого когда я учился, поэтому и ответил что глобальная, а тоесть 21-века, что я могу предложить когда иногда открываю сына задание и не шарю ))))))))))))
 
Вы немного неправильно меня поняли.
Вы получили 111 Кб, его делим на 4 и проверяем, кратно ли число. Если нет, то нужно к 111 добавлять, а не к 28. Т.е. получаем 112, оно делится на 4. Итого 112*1024 = 114688

Почему именно на 4 - а почему по Вашему эти два числа расходятся в значениях? Потому что основной размер кластера = 4 Кб. У Вас видимо именно такой.
Спасибо. Проблема решена
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)