Самый простой способ - использовать расширение Select IEnumerable
(вам нужно иметь using Linq;
вверху вашего файла исходного кода)
List<string> files = new List<string>(Directory.EnumerateFiles(target)
.Select(x => Path.GetFileName(x)));
Таким образом, последовательность файлов, извлеченных с помощью Directory.EnumerateFiles
, передается один за другим в метод Select
, где каждое полное имя файла (x) передается в Path.GetFileName
для создания новой последовательности только имен файлов.
Затем эта последовательность возвращается в качестве параметра конструктору List.
А по поводу вашего вопроса о методе замены. Помните, что метод Replace не изменяет строку, которую вы используете для вызова метода, но возвращает новую строку с выполненной заменой. В NET строки неизменяемы.
Так что, если вы хотите посмотреть на замену, вам нужно
string justFileName = i.Replace(target, "");