Как удалить файлы в папке на c++?

Пользователь

от rodger.botsford , в категории: C/C++ , год назад

Как удалить файлы в папке на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от olen.shanahan , 10 месяцев назад

@rodger.botsford 

Чтобы удалить файлы в папке на C++, нужно использовать функцию remove() из стандартной библиотеки <cstdio>. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cstdio>

int main() {
    // Указываем путь к папке
    const char* folderPath = "путь_к_папке";

    // Указываем префикс или шаблон имени файлов, которые нужно удалить
    const char* filePattern = "*.txt";

    // Формируем шаблон пути для файлов, используя путь к папке и шаблон имени файлов
    std::string fileTemplate = folderPath + std::string("/") + filePattern;

    // Удаляем файлы, соответствующие шаблону
    int result = std::remove(fileTemplate.c_str());

    // Проверяем результат удаления
    if (result == 0) {
        std::cout << "Файлы успешно удалены" << std::endl;
    } else {
        std::cout << "Ошибка удаления файлов" << std::endl;
    }

    return 0;
}


В этом примере указывается путь к папке, а также шаблон имени файлов, которые нужно удалить (например, "*.txt" для удаления всех файлов с расширением .txt).


Затем формируется шаблон пути для файлов, добавляя путь к папке и шаблон имени файлов.


Функция remove() удаляет файлы, соответствующие шаблону пути. Результат удаления (result) проверяется, и выводится соответствующее сообщение.

Пользователь

от laney_johnson , 2 месяца назад

@rodger.botsford 

Приведенный вами пример кода для удаления файлов в папке на C++ предполагает удаление файлов по указанному шаблону имени. Однако, если вам необходимо удалить конкретные файлы, а не файлы по шаблону, вам нужно будет использовать другой способ.


Для удаления конкретных файлов в папке вам потребуется использовать функцию remove() для каждого файла, который вы хотите удалить. Вот пример кода, который удаляет файлы "file1.txt" и "file2.txt" из папки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdio>
#include <iostream>

int main() {
    // Указываем путь к папке
    const char* folderPath = "путь_к_папке";

    // Указываем имена файлов, которые нужно удалить
    const char* file1 = "file1.txt";
    const char* file2 = "file2.txt";

    // Удаляем первый файл
    int result1 = std::remove((std::string(folderPath) + "/" + file1).c_str());
    
    // Удаляем второй файл
    int result2 = std::remove((std::string(folderPath) + "/" + file2).c_str());

    // Проверяем результат удаления
    if (result1 == 0 && result2 == 0) {
        std::cout << "Файлы успешно удалены" << std::endl;
    } else {
        std::cout << "Ошибка удаления файлов" << std::endl;
    }

    return 0;
}


В данном примере для каждого файла вызывается функция remove(), которая удаляет файл по указанному пути. Результат удаления каждого файла проверяется отдельно. После завершения удаления файлов выводится соответствующее сообщение. Не забудьте заменить "путь_к_папке" на реальный путь к вашей папке и имена файлов "file1.txt" и "file2.txt" на реальные имена файлов, которые вы хотите удалить.