Я вижу странные ошибки со следующим фрагментом кода:
File.Copy(oldPath, targetPath,true);
File.SetAttributes(targetPath, FileAttributes.Normal);
Файл должен быть перемещен в другое место, и поскольку мне не хватает права записи на исходном пути, я копирую файл и устанавливаю права доступа для целевого файла. В моей системе (Windows 7 SP1) это отлично работает.
Однако на (насколько я знаю) на любой машине Windows 10 программа вылетает из файла File.SetAttributes с сообщением
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not find file 'C:\ProgramData\...\BlankDb.sdf'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.SetAttributes(String path, FileAttributes fileAttributes)
Это говорит мне, что хотя код прошел строку File.Copy(), файл еще не был успешно скопирован. Не работает ли File.Copy() больше не синхронно или что-то еще изменилось на разных ОС в этом отношении?
Совершенно откровенно, я в тупике. Сначала я подумал о проблемах с синхронизацией и попытался обернуть вызов "Копировать" в новом потоке, пока я не прочитаю "File.Copy" (), который никогда не вернется, прежде чем копировать успешно или запутать ошибку.