Удаление и сравнения одинаковых папок
Интересует решения такого вопроса: Есть список папок с подобными именами
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;