Цитата Johny777:
но вот при попытке посчитать C:\Windows вылетает с ошибкой на Result := oFS.GetFolder(path).Size div (1024*1024); »
|
Johny777, вот же ж двоешник.
1. Проверяй в функции наличие папки. Исключение как раз из-за этого.
2. Размер Integer мал для "толстых" папок, нужно, например, Extended.
Код:
function GetFolserSize(path: String): Extended;
var
oFS: Variant;
begin
try
if not DirExists(path) then Exit;
oFS := CreateOleObject('Scripting.FileSystemObject');
Result := oFS.GetFolder(path).Size/1024/1024;
except
Result := 0;
end;
end;
//два знака после запятой
MsgBox(FormatFloat('#0.00', GetFolserSize('C:\Windows')), mbInformation, MB_OK);