Нужно удалять файлы, в том числе и файлы "Только чтение". Если в свойствах стоит галочка "Только чтение", то через remove() удалить не получается. Пытался получать информацию о файле в структуру _finddata_t и в ней менять поле attrib,
char[50] path; // Путь к файлу и маска поиска
_finddata_t file;
_findfirst(path, &file);
file.attrib = _A_NORMAL;// Попытка сделать файл без запретов на чтение или запись
но тоже ничего.Файл всё равно не удаляется и галочка не снимается. Хотя если снять галолчку в ручную(ПКМ по файлу->свойства), то только тогда удаляется.
Если речь идет о Windows, то тогда можно будет использовать функцию SetFileAttributesW
В POSIX определена такая функция - _chmod
, так что, как по мне, самый переносимый способ удалить R/O файл - примерно
int killFile(const char * name)
{
if (name==0) return 1;
if (remove(name)) {
_chmod(name,_S_IWRITE);
} else return 0;
return remove(name);
};
Т.е. если первая попытка удалить не проходит - снимаем R/O и пробуем еще раз...
P.S. То, что делаете вы - примерно то же самое, что, пересчитав деньги в кошельке, записать сумму на бумажке (снять информацию о файле в структуру file
). После чего увеличить на бумажке (изменить поле структуры file
) сумму в 10 раз и надеяться, что в кошельке от этого что-то прибавится...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я нашел оболочку для curl и пытаюсь ее "собрать" Что я сделал:
Задача про Диету Деда Мороза, подробнее на картинкеСамая простая задача из тех что были, все решил эту не удается