Вверх ↑
Ответов: 1305
Рейтинг: 29
#1: 2006-07-31 10:22:03 ЛС | профиль | цитата
Вот родные функции KOL, как раз в тему
function FileSize (const Path: String) : Integer;
function DirectorySize (const Path: String): I64;

Кроме всего прочего размер папки возвращается в формате I64, что эквивалентно int64, т.е может выдавать ЗНАЧИТЕЛЬНО больше, чем 2 Гб

Вячеслав, и стоило сторонний компонент использовать

Add(InlineCode,9658799,350,98)
{
WorkPoints=#5:doDir|6:doFile|
EventPoints=#6:onSize|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|0:|20: onSize:THI_Event;|0:|48: procedure doDir(var _Data:TData; Index:word);|49: procedure doFile(var _Data:TData; Index:word);|0:|5: end;|0:|14:implementation|0:|41:function StrToThs(const n:string):string;|15:var I: Integer;|5:begin|21: I := Length(n) - 2;|14: Result := n;|17: while I >= 2 do|10: begin|29: Insert(, Result, I);|15: Dec(I,3);|8: end;|4:end;|0:|28:procedure THiAsmClass.doDir;|13:var s:string;|10:var r:i64;|5:begin|21: s:=ToString(_Data);|22: r:=DirectorySize(s);|19: s:=Int64_2Str(r);|34: _hi_onEvent(onSize,StrToThs(s));|4:end;|1: |29:procedure THiAsmClass.doFile;|13:var s:string;|14:var r:integer;|5:begin|21: s:=ToString(_Data);|17: r:=FileSize(s);|16: s:=Int2Str(r);|34: _hi_onEvent(onSize,StrToThs(s));|4:end;|0:|4:end.|
link(onSize,11469272:doEvent1,[])
}
Add(Edit,12370351,532,84)
{
Left=150
Top=20
Width=165
Point(doEnabled)
}
Add(Button,3813191,168,63)
{
Left=15
Top=20
Caption="Папки"
Point(doEnabled)
link(onClick,11694559:doBrowse,[])
}
Add(Browse,11694559,217,63)
{
link(onBrowse,7412281:doEvent1,[])
}
Add(Hub,9517264,329,63)
{
InCount=2
link(onEvent1,8044200:doWork1,[(371,69)(371,45)(36,45)(36,69)])
link(onEvent2,12061932:doWork1,[(455,76)(455,104)])
}
Add(Hub,11469272,399,98)
{
OutCount=3
link(onEvent1,8044200:doWork2,[(444,104)(444,34)(45,34)(45,76)])
link(onEvent2,12061932:doWork2,[])
link(onEvent3,12370351:doText,[(467,118)(467,90)])
}
Add(ChanelToIndex,8044200,56,63)
{
link(onIndex,15665975:doEvent1,[])
}
Add(ChanelToIndex,12061932,483,98)
{
link(onIndex,12370351:doEnabled,[])
}
Add(Button,10761733,168,119)
{
Left=15
Top=70
Caption="Файлы"
Point(doEnabled)
link(onClick,9929961:doExecute,[])
}
Add(Hub,15665975,105,63)
{
link(onEvent1,3813191:doEnabled,[])
link(onEvent2,10761733:doEnabled,[(152,76)(152,125)])
}
Add(Hub,16594307,266,119)
{
link(onEvent1,9517264:doEvent2,[(319,125)(319,76)])
link(onEvent2,9658799:doFile,[(332,132)(332,111)])
}
Add(Hub,7412281,266,63)
{
link(onEvent1,9517264:doEvent1,[])
link(onEvent2,9658799:doDir,[(309,76)(309,104)])
}
Add(ODialog,9929961,217,119)
{
link(onExecute,16594307:doEvent1,[])
}
карма: 0

0