GARANTIR DESCONTO

Fórum Ajuda com o Compactar do Winrar #532089

17/09/2015

0

Vou lhe explicar o problema para que possam visualizar melhor.

Problema 1:
O Winrar exibe mensagem de erro dizendo que o "arquivo.rar" não pode ser criado por que está em
uso.

Problema 2:
Ao compactar uma lista de arquivos à partir de um ListBox, quando
não ocorre o Problema 1, no arquivo compactado, está sempre faltando 5 arquivos ou seja, se eu
compacto 12 arquivos, dentro do arquivo.rar sempre contém 7 arquivos, e não 12.

Segue o código completo abaixo:
Agradeço desde já.
Obrigado.
Adriano.

///

CÓDIGO:

var
I, II, III: Integer;
PATCHout, WinRar : String;
tf: TextFile;
begin
Form50.Enabled := FALSE;
if (ckbCompress.Checked = TRUE) AND (lbxListFiles.Items.Count>0) then BEGIN
edtDate.Text:= FormatDateTime('ddmmyyyy-', Now);
edtTime.Text:= FormatDateTime('hhmmss', Now);
edtFILENAME.Text:=edtDATE.Text+edtTIME.Text;
PATCHout:= edtLocal.Text+edtFileName.Text+'.rar';
WinRar:= edtWinDir.Text;
ProgressBar1.Minimum := 0;
ProgressBar1.Maximum := lbxListFiles.Items.Count;
ProgressBar1.Position := 0;
ProgressBar1.Step := 1;
sLabel2.Caption:= 'Compactando...';
sLabel2.Refresh;
for I := lbxListFiles.Items.Count - 1 downto 0 do begin
Try
WinExec(PAnsiChar(AnsiString(WinRar+' a -ep1 -ibck -ed "'+PATCHout+'" "'+lbxListFiles.Items.Strings[I]+'"*.*')),sw_HIDE);
lbxListFiles.Items.Delete(I);
lbxListFiles.Refresh;
ProgressBar1.StepIt;
ProgressBar1.Update;
Application.ProcessMessages;
Finally
if lbxListFiles.Items.Count = 0 then begin
if isProcessRunning('WinRAR.exe') then
PostMessage(FindWindow(nil, 'WinRAR.exe'), WM_CLOSE, 0,0);
if ProgressBar1.Position <> 100 then
ProgressBar1.Position := 100;
sLabel2.Caption := '...';
sLabel2.Refresh;
Application.ProcessMessages;
end;
End;
END;
END;
Adriano Crivelli

Adriano Crivelli

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar