Тема: Видалення файлів із атрибутом "read only"
Доброго дня. Виникло деяке питаннячко. По завданню треба написати 3 програми для копіювання, переміщення та видалення файлів. Та за умови якщо файл, що видаляється має атрибут "Тільки для читання", то запитати користувача видаляти його, чи ні або видалити всі, або відмінити операцію. Почав писати "копіювання". І все вже написав, програма чітко праціє із звичайними файлами. Але файли Read Only видалятись не хочуть. Єдине, що спало на думку, враховуючи той матеріал, що нам надали, це вручну змінити атрибут файлу на normal Тобто ідея була така:
if (file->attrib & _A_RDONLY)
{
file->attrib = _A_NORMAL;
remove (path_dest);
_CopyFile (path_source, path_dest);
}
Та як з'ясувалося не все так просто. Слідкуючи за відладчиком, дійсно видно, що file->attrib змінюється на 0, але фактично якщо подивитись у властивостях файлу, то як стояла галка "Тільки для читання", так і стоїть. І файл, звісно, не видаляється, remove (path_dest); повертає -1.
На просторах інтернету, знайшов повідомлення, що є функція chmod(), котра зкидує атрибути файлу, але нам про неї навіть не заїкалися, тому хотілося б щоб хтось підказав як простіше це можна зробити.
PS у тестових файлів, котрі я хотів скопіювати і у котрих я поставив атрибут "Тільки для читання" при перевірці атрибутів
if (file->attrib & _A_RDONLY)
виявлялося, що у них атрибут зовсім не _A_RDONLY, а _A_ARCH (архівний) і вони також не видаляються інструкцією
remove (path_dest);
Отакі справи...