Вообще, переименовать файл можно командой Rename. Одно из имен у тебя уже готовое лежит в листбоксе. Второе надо сконструировать.
Код:
var
OldName, NewName : String;
begin
OldName := ListBox1.Items[ListBox1.ItemIndex]; // Get current name
If InputQuery('Rename','New name:',NewName) Then // Ask user for new name
Begin
NewName := ExtractFilePath(OldName) + // path
ChangeFileExt(NewName,ExtractFileExt(OldName)); // New file name and save orig. extention
If Rename(OldName,NewName)
Then ListBox1.Items[ListBox1.ItemIndex] := NewName // Update current name
Else ShowMessage('Error renaming file.');
End;
end;
Сорри, коменты по английски.
Идея такая. В листбоксе лежит полное имя файла (с путем).
Переименовываем выбранный файл.
Спрашиваем новое имя у пользователя.
Если получилось переименовать, то обновляем инфу в листбоксе, иначе - сообщение об ошибке.