Это только предположение, однако ваша проблема, скорее всего, связана с тем, что вы устанавливаете и получаете атрибуты для разных файлов. Т.е. path
и modelFilename
File.SetAttributes(path, File.GetAttributes(modelFilename) | FileAttributes.ReadOnly);
Почему эти имена разные? Почему бы не попробовать
File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);
Или даже просто как тест
File.SetAttributes(path, FileAttributes.ReadOnly);
Хотя при чтении вашего кода неясно, что вы делаете с modelFilename
и initialattributes
и почему он отличается от path
и почему вы не можете просто позвонить
File.SetAttributes(path, initialattributes);
также, да, убедитесь, что дескриптор файла закрыт, как упомянуто в комментариях, это может быть прерыватель сделки (неизвестно)