Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Фоновый подсчёт размера папки по пробелу 
Author Message
D1P



PostPosted: Fri Dec 12, 2008 13:03    Post subject: Reply with quote

Quote:
К сожалению, такое сделать вряд ли получится

Гм, не вижу больших трудностей. Может мы друг друга недопоняли.
Код примерно такой, за неимением времени до компилируемого состояния не расписываю:
Code:

function ContentGetValue(FileName:pchar;FieldIndex,UnitIndex:integer;FieldValue:pbyte;maxlen,flags:integer):integer; stdcall;
Begin
if Flags=CONTENT_DELAYIFSLOW then
 begin
 GetDirSizeBackground (FileName,DirSize);
 Result:=ft_ondemand;
 end else
 begin
 if DirSizeCounted (FileName) then Move(DirSize, FieldValue^, sizeof(DirSize)) else {тут можно подождать, или посчитать, или ещё что-то}
 Result:=ft_numeric_32;
 end;
End;

DirSize - глобальная переменная, будем считать, что GetDirSizeBackground отрабатывает в фоне. Прекрасно знаю, что вызов должен быть совсем другой, и надо будет заботиться о куче вещей: успела ли отработать функция получения размера, не был ли подсчитан размер раньше, и т.д. Но это всё решаемо.

Другое дело, что для текущей задачи я бы заморачиваться не стал.
_________________
База знаний о Total Commander
Блог
View user's profile Send private message Visit poster's website ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group