Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1265
Благодарности: 1025

Профиль | Отправить PM | Цитировать


Цитата 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);
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:33, 02-10-2012 | #1063