Удалить файл без подтверждения с++
При удалении файла через командер, спрашивается подтверждение. Как удалить такой файл из программы?
namespace fs = std::filesystem;
using namespace std;
int main()
{
fs::remove("c:/temp/1.txt");
}
Выдает ошибку при выполнении.
Ответы (1 шт):
Автор решения: Alexey Vesker
→ Ссылка
Исходя из вашего ответа в комментарии и судя по пути к удаляемому файлу все становится более менее ясно.
Вы пишите приложение под windows и согласно документации на этой платформе fs::remove вызывает WinAPI функцию DeleteFileW. В описании которой сказано, что она не может удалить файл, предназначенный только для чтения, и перед этим необходимо снять этот флаг с файла.
Используя стандартную библиотеку плюсов, сделать это можно так:
int main()
{
//Даем права на чтение/выполнение/запись файла всем пользователям
fs::permissions("c:/Temp/1.txt", fs::perms::all);
//Удаляем файл
fs::remove("c:/temp/1.txt");
}