Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Может есть и другие варианты, но я остановился на этом
Код:
#cs
Единицы измерения информации:
Десятичная:
Бит - 10^0
Килобайт - 10^3
Мегабайт - 10^6
Гигабайт - 10^9
Терабайт - 10^12
Петабайт - 10^15
Эксабайт - 10^18
Зеттабайт - 10^21
Йоттабайт - 10^24
Двоичная:
Бит - 2^0
Килобайт - 2^10
Мегабайт - 2^20
Гигабайт - 2^30
Терабайт - 2^40
Петабайт - 2^50
Эксабайт - 2^60
Зеттабайт - 2^70
Йоттабайт - 2^80
Источник: http://ru.wikipedia.org/wiki/Единицы_измерения_количества_информации
#ce
#include <Misc.au3>
$iSize = __format_GetFileSize(@ScriptDir & '\AutoIt.chm')
MsgBox(0, 'Info', 'File size: ' & $iSize)
Func __format_GetFileSize($sFile, $iFlag = 0)
Local $iSize, $fRet
If FileExists($sFile) Then
$iSize = FileGetSize($sFile)
$fRet = StringFormat('%0.2f Тб', _Iif($iFlag = 1, ($iSize / 10^12), ($iSize / 2^40)))
If ($fRet < 0.1) Then $fRet = StringFormat('%0.2f Гб', _Iif($iFlag = 1, ($iSize / 10^9), ($iSize / 2^30)))
If ($fRet < 0.1) Then $fRet = StringFormat('%0.2f Мб', _Iif($iFlag = 1, ($iSize / 10^6), ($iSize / 2^20)))
If ($fRet < 0.1) Then $fRet = StringFormat('%0.2f Кб', _Iif($iFlag = 1, ($iSize / 10^3), ($iSize / 2^10)))
If ($fRet < 0.1) Then $fRet = StringFormat('%0i Б', _Iif($iFlag = 1, ($iSize / 10^0), ($iSize / 2^0)))
Else
Return SetError(@error, @extended, -1)
EndIf
Return $fRet
EndFunc