Может быть, сделать вашу обработку ошибок более детальной, чтобы вы ловили только одну попытку, когда она взорвется? Вы можете сделать это (не повторяя себя) путем рефакторинга кода, вызывающего проблемы, в служебный метод - т.е.
TryCopyFile(path1);
TryCopyFile(path2);
TryCopyFile(path3);
Где TryCopyFile
перехватывает исключение и записывает (одиночный) путь, который был передан в качестве аргумента.