Существует множество причин, по которым файл может быть недоступен для записи, например:
- Это защищено от записи
- Он находится на носителе только для чтения (например, на компакт-диске)
- Учетная запись пользователя, используемая для запуска кода, не имеет доступа для записи в файл
- Файл находится в общей папке, где запись не разрешена
Вы можете проверить некоторые из них, но единственный способ проверить это - попытаться открыть файл для записи.
Вы можете использовать функции GetAttr и SetAttr для поиска и изменения флага только для чтения.
Некоторые причины невозможности записи файла вообще не могут быть исправлены (например, файл на CD-ROM) или не могут быть исправлены из вашей программы. Если учетная запись пользователя не имеет разрешения на запись в файл, маловероятно, что у нее есть разрешение на изменение разрешений ...