c语言删除非空目录函数
时间: 2023-12-16 13:05:34 浏览: 125
c删除非空文件夹的函数
5星 · 资源好评率100%
在C语言中,可以使用递归删除的方式删除非空目录,其中可以使用nftw函数来实现递归删除目录及其子目录和文件。以下是一个使用nftw函数删除非空目录的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <ftw.h>
int remove_dir(const char *path, const struct stat *sb, int typeflag, struct FTW *ftwbuf) {
int ret = remove(path);
if (ret == -1) {
perror("Error removing directory");
return -1;
}
return 0;
}
int main() {
char *dir = "/path/to/directory";
int ret = nftw(dir, remove_dir, 64, FTW_DEPTH | FTW_PHYS);
if (ret == -1) {
perror("Error removing directory");
return -1;
}
printf("Directory %s deleted successfully.\n", dir);
return 0;
}
```
在上面的示例中,程序首先定义一个要删除的目录的路径,然后调用nftw函数递归删除该目录及其子目录和文件。如果删除成功,程序输出一条成功的消息,否则输出一条错误消息。
需要注意的是,使用nftw函数删除目录及其子目录和文件时,需要格外小心,以免误删重要文件。同时,该函数也会删除符号链接和设备节点等特殊文件,因此在使用该函数时需要注意。
阅读全文