在C语言中,可以使用remove()
函数来删除文件,但是不能直接删除目录。要删除目录及其下所有文件,可以使用系统调用rmdir()
和remove()
函数的组合来实现。
以下是一个示例代码来删除目录及其下所有文件:
#include#include #include #include 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; }
该代码会递归地删除指定目录及其下所有文件,然后删除该目录本身。请注意,这段代码仅仅是一个示例,实际场景中可能需要添加更多的错误处理和安全检查。