У меня есть основной список файлов Filelist
. Главный список содержит полные пути к файлу, и есть второй список copylist
, который он пополняется путем извлечения содержимого из каталога. Мне нужно заменить файл Имена в Filelist
, которые совпадают с именами во временной папке, поэтому я использовал следующий код.Замена совпадающих имен файлов в списке строк
Filelist = new List<string>();
//Code to Populate File List from openfiledialog
try
{
copylist = Directory.GetFiles(temppath + @"\mydir\");
List<string> tempfiles = new List<string>(Filelist);
int x = 0;
foreach (string file in tempfiles)
{
for (int i = 0; i < copylist .Length; i++)
{
if (Path.GetFileName(file) == Path.GetFileName(copylist [i]))
{
MessageBox.Show("Removed: " + file + " \ninserted:" + copylist [i]);
Filelist.RemoveAt(x);
Filelist.Insert(x,copylist [i]);
}
x++;
}
}
}
catch (Exception)
{
}
я тестировал с 4 файлов ... Имена файлов совпадающая, когда я проверил вручную (т.е. то же имя файла в папке временных и в FileList) .The проверки равенства, а именно: Path.GetFileName(file) == Path.GetFileName(copylist [i])
выполняется для всего 2 файлов и, наконец, только один файл заменяется на Filelist
, хотя все 4 файла присутствуют в папке temp.
Что я делаю неправильно. Пожалуйста, совет.
@MaciejLos Сво Струнное List.Please см обновления. – techno