用C语言写一个删除指定目录下所有文件的函数
时间: 2023-04-05 13:03:24 浏览: 90
好的,我可以回答这个问题。以下是一个用C语言写的删除指定目录下所有文件的函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
void delete_files(char *path) {
DIR *dir;
struct dirent *entry;
char filepath[256];
dir = opendir(path);
if (dir == NULL) {
printf("Failed to open directory: %s\n", path);
return;
}
while ((entry = readdir(dir)) != NULL) {
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
continue;
}
sprintf(filepath, "%s/%s", path, entry->d_name);
if (entry->d_type == DT_DIR) {
delete_files(filepath);
rmdir(filepath);
} else {
remove(filepath);
}
}
closedir(dir);
}
int main() {
char path[256];
printf("Enter directory path: ");
scanf("%s", path);
delete_files(path);
printf("All files in %s have been deleted.\n", path);
return 0;
}
```
这个函数使用了 opendir() 和 readdir() 函数来遍历指定目录下的所有文件和子目录。如果遇到子目录,就递归调用自己来删除子目录下的所有文件和子目录。如果遇到文件,就使用 remove() 函数来删除文件。
注意:使用这个函数来删除文件时,请务必小心,因为它会删除指定目录下的所有文件和子目录,包括不可恢复的文件。请确保你已经备份了重要的文件,或者你确信你要删除的是不需要的文件。