У меня есть функция, которая suposed, чтобы скопировать все папки, вложенные папки файлы, выбранные из OpenFileDialog из места в другое:Как скопировать выбранные папки, вложенные папки и файлы из OpenFileDialog в C#
я сделал эту функцию для скопировать все выбранные пути:
public void CopiarFicheiros(string CopyTo, List<string> FilesToCopy)
{
foreach (var item in FilesToCopy)
{
string DirectoryName = Path.GetDirectoryName(item);
string Copy = Path.Combine(CopyTo, DirectoryName);
if (Directory.Exists(Copy) && DirectoryName.ToLower() != "newclient" && DirectoryName.ToLower() != "newservice")
{
Directory.CreateDirectory(Copy);
File.Copy(item, Copy + @"\" + Path.GetFileName(item), true);
}
else File.Copy(item, CopyTo + @"\" + Path.GetFileName(item), true);
}
}
логика полна недостатков, и я бегу из времени и не может показаться, чтобы найти правильное решение этой проблемы.
Это, как я получаю выбранные файлы и папки из диалога:
private List<string> GetFiles()
{
var Files = new List<string>();
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string sFileName = openFileDialog.FileName;
string[] arrAllFiles = openFileDialog.FileNames;
Files = arrAllFiles.ToList();
}
return Files;
}
Кто-нибудь есть лучшее решение, или ключ к тому, что мне нужно изменить, чтобы успешно сделать это? Любая помощь очень ценится, спасибо