Разный размер занятого места на диске в Windows XP, Windows 7 и Total Commander, как решить?

Windows XP
322a60b9cda44176bdd61f989ec53842.PNG
Windows 7
4e047cf3f80446509fe7b9e48cac0625.png
Total Commander
4bea8fb2009c4033b8c529fe9fbc33a6.png

Код из С# выдаёт 3805184, что соответствует выдаче total commander и выдаче windows xp.
DriveInfo drive = new DriveInfo(driveLetter);
var test = (drive.TotalSize - drive.TotalFreeSpace).ToString();


Вопрос, как добиться одинаковой цифры во всех системах либо получить цифру из Windows 7?
  • Вопрос задан
  • 396 просмотров
Решения вопроса 2
@raincons
Диск мультисессионный? Вероятно, xp показывает только полезные данные, а 7 - объем всех сессий. Могу ошибаться, проверить не на чем. Если это так, покопайте в сторону IMAPI: IDiscFormat2Data::get_FreeSectorsOnMedia и IDiscFormat2Data::get_TotalSectorsOnMedia
Ответ написан
Комментировать
hammerit
@hammerit Автор вопроса
Используя DeviceIoControl из WinApi, получил следующую цифру - 29360128. Оказывается в Windows присутствует одновременно три цифры, а не две. Итого:
1) Выдача drive.TotalSize - drive.TotalFreeSpace равняется 3805184
2) Выдача DeviceIoControl равняется 29360128
3) Выдача IMAPI равняется 45086720
f37060d6ac2d4123939239a5ae1351e2.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sergey-S-Kovalev
@Sergey-S-Kovalev
Sysadmins team leader
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы