Модуль "P2KFileManager" (часть 5) - GetFileList
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
function TfrmP2KFileManager.GetFileList(var AMotoFileList: TMotoFileList; APatern: string): boolean; var c: byte; j: integer; res: boolean; zMotoFileList: TMotoFileList; pos: integer; frmProgress: TfrmProgress; begin result:= false; if not Form1.IsP2KConnected then exit;
//AMotoFileList:= nil;
TotalCnt:= 0;
frmProgress:= TfrmProgress.Create(Self);
frmProgress.GradientLabel1.Visible:= true;
frmProgress.GradientLabel2.Visible:= true;
frmProgress.AdvProgressBar1.Visible:= true;
frmProgress.AdvProgressBar2.Visible:= false;
frmProgress.GradientLabel1.Caption:= p2k_fm_pw_text01;
frmProgress.AdvProgressBar1.Value:= 0;
frmProgress.AdvProgressBar2.Value:= 0;
frmProgress.AdvProgressBar2.MaxValue:= TotalCnt;
frmProgress.Show;
Application.ProcessMessages;
try
{***} Logger('*** Получение списка файлов ***');
if APatern = '' then
begin
{ case iReadDisks of
0 : begin //0 - все доступные,
}
for c:=0 to High(arrDrives) do
begin
{***} Logger('*** Маска для поиска ' + arrDrives[c].Name + '/*');
arrDrives[c].CntFiles:= P2K.GetFilesCount(arrDrives[c].Name + '/*');
{***} Logger('*** Кол-во файлов найденных по маске ' + arrDrives[c].Name + '/*' + ' = ' + inttostr(arrDrives[c].CntFiles));
TotalCnt:= TotalCnt + arrDrives[c].CntFiles;
end;
end
else
begin
{***} Logger('*** Маска для поиска ' + APatern);
TotalCnt:= P2K.GetFilesCount(APatern);
{***} Logger('*** Кол-во файлов найденных по маске ' + APatern + ' = ' + inttostr(TotalCnt));
for j:=0 to High(arrDrives) do arrDrives[j].CntFiles:= TotalCnt;
end;
except
end;
frmProgress.GradientLabel1.Visible:= true;
frmProgress.GradientLabel2.Visible:= true;
frmProgress.AdvProgressBar1.Visible:= true;
frmProgress.GradientLabel1.Caption:= p2k_fm_pw_text01;
frmProgress.AdvProgressBar1.Value:= 0;
frmProgress.AdvProgressBar2.Value:= 0;
frmProgress.AdvProgressBar2.MaxValue:= TotalCnt;
if TotalCnt > 0 then
begin
//***
j:= High(arrDrives);
if APatern <> '' then j:= 0;
if j > 0 then frmProgress.AdvProgressBar2.Visible:= true
else frmProgress.AdvProgressBar2.Visible:= false;
Form1.Enabled:= false;
Application.ProcessMessages;
//***
if xMotoFiles <> nil then xMotoFiles:= nil;
SetLength(xMotoFiles, TotalCnt);
pos:= 0;
try
if APatern = ''
then begin
for c:=0 to High(arrDrives) do
begin
frmProgress.AdvProgressBar1.MaxValue:= arrDrives[c].CntFiles;
frmProgress.GradientLabel2.Caption:= Format(p2k_fm_pw_text02,[arrDrives[c].Name]);
SetLength(zMotoFileList, arrDrives[c].CntFiles);
frmProgress.AdvProgressBar1.Value:= 0;
Application.ProcessMessages;
arrDrives[c].CntFiles:= P2K.GetFilesCount(arrDrives[c].Name + '/*');
Application.ProcessMessages;
try
{***} Logger('*** Получение списка файлов для ' + arrDrives[c].Name + '/*');
res:= P2K.GetFileList(arrDrives[c].Name + '/*', arrDrives[c].CntFiles, zMotoFileList, TotalCnt, frmProgress);
frmProgress.AdvProgressBar1.Value:= 0;
Application.ProcessMessages;
if res then begin
for j:= 0 to arrDrives[c].CntFiles-1 do
begin
xMotoFiles[pos]:= zMotoFileList[j];
//{***} Logger(zMotoFileList[j].Name);
inc(pos);
end;
result:= res;
end;
except
end;
end
end
else begin
//zMotoFileList:= nil;
SetLength(zMotoFileList, TotalCnt);
//TotalCnt:= P2K.GetFilesCount(APatern);
frmProgress.AdvProgressBar1.MaxValue:= TotalCnt;
frmProgress.GradientLabel2.Caption:= Format(p2k_fm_pw_text03, [APatern]);
//Application.ProcessMessages;
try
{***} Logger('*** Получение списка файлов для ' + APatern);
res:= P2K.GetFileList(APatern, TotalCnt, zMotoFileList, TotalCnt, frmProgress);
if res then begin
for j:= 0 to TotalCnt-1 do
begin
xMotoFiles[pos]:= zMotoFileList[j];
{***} Logger(zMotoFileList[j].Name);
inc(pos);
end;
result:= res;
end;
except
end;
end;
except
end;
//end;
end;
frmProgress.Free;
Form1.Enabled:= true;
end;
Еще записи по теме
- Модуль "Справочник" (часть 5) - GetPhoneBookParamsEx
- Модуль "P2KApi" (часть 7) - FindUSBDiskInterface
- Модуль "P2KApi" (часть 14) - TP2KAPI.Init
- Модуль "P2KApi" (часть 71) - TP2KAPI.ReadDataZ
- Модуль "Структура меню" (часть 3) - определение переменных и типов данных
- Модуль "Flash_SHX" (часть 12) - SetCGCreateFile
- Модуль "Мое меню" (часть 7) - GetWebShortcuts
