Функция remove_all
Функция remove_all удаляет файл или директорию
по указанному пути. Если путь указывает на директорию,
то она будет удалена вместе со всем своим содержимым
(вложенными файлами и папками). Если путь указывает
на файл, то он будет удалён как обычный файл.
В первый параметр мы передаем путь к удаляемому объекту.
Функция возвращает количество удалённых файлов и директорий.
Для работы функции необходимо подключить заголовочный
файл <filesystem>. Следует быть осторожным:
функция не перемещает объекты в корзину, а удаляет их
безвозвратно.
Синтаксис
std::filesystem::remove_all(path)
Пример
Давайте создадим директорию с файлом внутри, а затем удалим её вместе со всем содержимым:
#include <iostream>
#include <filesystem>
#include <fstream>
using namespace std;
int main()
{
filesystem::create_directory("test_dir");
ofstream("test_dir/file.txt") << "hello";
uintmax_t count = filesystem::remove_all("test_dir");
cout << count << endl;
return 0;
}
Результат выполнения кода:
2
Число 2 означает, что было удалено
два объекта: сама директория и файл внутри неё.
Пример
Давайте удалим обычный файл и проверим, существует ли он после этого:
#include <iostream>
#include <filesystem>
#include <fstream>
using namespace std;
int main()
{
ofstream("file.txt") << "data";
filesystem::remove_all("file.txt");
cout << filesystem::exists("file.txt") << endl;
return 0;
}
Результат выполнения кода:
0
Значение 0 говорит о том, что файл
был успешно удалён и больше не существует.
Смотрите также
-
функция
remove,
которая удаляет файл или пустую директорию -
функция
exists,
которая проверяет существование пути -
функция
is_directory,
которая проверяет, является ли путь директорией -
функция
remove_filename,
которая удаляет имя файла из пути