Я делаю приложение, которое копирует файлы из одного места в другое, в моем приложении я использую пул потоков, чтобы можно было сделать несколько копий вместе. Когда я попытался скопировать файл только для чтения, я получил исключение «отказано в доступе». Чтобы исправить это, я изменил атрибуты файла на RW с помощью этой команды:
File.SetAttributes(fileName, File.getAttributes(fileName) & ~FileAttributes.ReadOnly);
Атрибуты файла были успешно изменены, но команда копирования:
File.Copy(fileName, destinationPath, true);
вернул то же самое исключение «отказано в доступе».
Когда я снова запускаю это приложение для того же файла, все выполняется правильно, и копирование выполняется успешно, поскольку атрибуты файла были изменены при последнем запуске. Мой вопрос: почему файл не был скопирован в первом запущенном приложении, даже если я сначала изменил атрибуты, а затем попытался скопировать файл?
access denied
означала, что файл используется другой программой; в этом случае можно попробовать открыть его с помощьюFileStream("...", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
и вручную скопировать - person Rubens Farias   schedule 16.08.2015