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

gelu4

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

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

Получаю верхнее значение. А нужно именно нижнее.
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Математика.
Вы получаете верхнее значение, определяете целое число Кб (делите значение на 1024), далее делите это число на 4. Если в итоге не целое, добавляете к нему сколько нужно, чтобы получить целое. После этого умножаете полученное число на 1024.
 
  • Спасибо
Реакции: Dimionix

gelu4

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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Какая то странная математика получается.
Беру верхнее 113 703/1024, округляю и получаю 111, делю на 4 (кстате, почему именно на 4?), округляю и получаю 28. Умножаю на 1024 и получаю 28.672 wtf?
Вы немного неправильно меня поняли.
Вы получили 111 Кб, его делим на 4 и проверяем, кратно ли число. Если нет, то нужно к 111 добавлять, а не к 28. Т.е. получаем 112, оно делится на 4. Итого 112*1024 = 114688

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
это глобальная математика 21 века ))
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Предложи свой вариант, получше.
я не об этом, а о том что ты описал, в математике раньше небыло такого когда я учился, поэтому и ответил что глобальная, а тоесть 21-века, что я могу предложить когда иногда открываю сына задание и не шарю ))))))))))))
 

gelu4

Client
Регистрация
11.01.2015
Сообщения
165
Благодарностей
41
Баллы
28
Вы немного неправильно меня поняли.
Вы получили 111 Кб, его делим на 4 и проверяем, кратно ли число. Если нет, то нужно к 111 добавлять, а не к 28. Т.е. получаем 112, оно делится на 4. Итого 112*1024 = 114688

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

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