Удаление и сравнения одинаковых папок

Интересует решения такого вопроса: Есть список папок с подобными именами

dsrecr7e7 787
dsrecr7e7 587
ctqcfw7w4 6578

Как удалить дубликаты папок и все что в них сравнивая их до первого пробела. То есть если имена до первого пробела совпадут то удалить дублирующую папку и все что в ней (То есть сравнение идет только по названию папок до первого пробела).

На выходе должно получится:

dsrecr7e7 587
ctqcfw7w4 6578

Ответы (1 шт):

Автор решения: Татьяна

Вопрос решен, кому интересно то ответ прост:

var L: TStringList;
    s, sDirName, sSubStr: string;
    i : integer;
begin
  L := TStringList.Create;
  L.Sorted := True;
 
 for s in TDirectory.GetDirectories('ПутьГдеИщемУдаляемПапки') do
    begin
       DirectoryName := TPath.GetFileName(s);
       if Pos(' ', DirectoryName)>1 then begin
         sSubStr := Copy( DirectoryName, 1, Pos(' ', DirectoryName)-1);
         if L.Find(sSubStr, i) then // нашли дубликат, удаляем папку
                  TDirectory.Delete(s, true)
         else L.Append(sSubStr); // если такой папки не было, то сохраним имя в списке
       end; 
    end;
 
 FreeAndNil(L);
end;
→ Ссылка