溫馨提示×

c語言怎么刪除目錄和目錄下所有文件

小億
733
2024-04-28 10:50:42
欄目: 編程語言

在C語言中,可以使用remove()函數來刪除文件,但是不能直接刪除目錄。要刪除目錄及其下所有文件,可以使用系統調用rmdir()remove()函數的組合來實現。

以下是一個示例代碼來刪除目錄及其下所有文件:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

void delete_directory(const char *path) {
    DIR *dir = opendir(path);
    struct dirent *entry;

    while ((entry = readdir(dir)) != NULL) {
        char full_path[256];
        snprintf(full_path, sizeof(full_path), "%s/%s", path, entry->d_name);

        if (entry->d_type == DT_DIR) {
            if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0) {
                delete_directory(full_path);
            }
        } else {
            remove(full_path);
        }
    }

    closedir(dir);
    rmdir(path);
}

int main() {
    const char *directory = "test_directory";
    delete_directory(directory);

    return 0;
}

該代碼會遞歸地刪除指定目錄及其下所有文件,然后刪除該目錄本身。請注意,這段代碼僅僅是一個示例,實際場景中可能需要添加更多的錯誤處理和安全檢查。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女