Wenn die sortiert sind, kann man da einfach sequentiell beide Listen iterieren:
Delphi-Quellcode:
iA := 0;
iB := 0;
while (iA < A.Count)
and (
iB < B.Count)
do begin
fA := ExtractFileName(A[iA]);
fB := ExtractFileName(B[
iB]);
if fA <
fB then begin
Writeln('
copy: ', A[iA]);
Inc(iA);
end
else if fA >
fB then begin
Writeln('
delete: ', B[
iB]);
Inc(iA);
end
else begin
Writeln('
if diff ', fa, '
then copy ', A[iA], '
to ', B[
iB]);
Inc(iA);
Inc(
iB);
end;
end;
while (iA < A.Count)
do begin
Writeln('
copy: ', A[iA]);
Inc(iA);
end;
while (
iB < B.Count)
do begin
Writeln('
delete: ', B[
iB]);
Inc(
iB);
end;
Wenn Unterverzeichnisse im Spiel sind wird es geringfügig komplizierter.