Linux下递归删除路径的函数
2006-04-18 21:36
656 查看
一些说明:
主要是遍历路径,知道遍历就好删除了
当时没有找到文件类型的宏定义,只好先遍历输出类型看看。注意Linux系统内部将路径看作特殊的文件,8是普通文件,4是路径,而“.”和“..“的类型都是4,要区别一下
void remove_dir(char* sz_dir)
{
char subname[256];
DIR *pdir = NULL;
struct dirent *pdirent = NULL;
pdir = opendir(sz_dir);
if (pdir) {
//printf("into dir %s/n", sz_dir);
while ((pdirent = readdir(pdir)) != NULL) {
//printf("type is %d/n", pdirent->d_type);
//printf("name is %s/n", pdirent->d_name);
if (pdirent->d_type == 8) {
sprintf(subname, "%s/%s", sz_dir, pdirent->d_name);
remove(subname);
}
if (pdirent->d_type == 4
&& strcmp(pdirent->d_name, ".") != 0
&& strcmp(pdirent->d_name, "..") != 0) {
sprintf(subname, "%s/%s", sz_dir, pdirent->d_name);
remove_dir(subname);
}
}
closedir(pdir);
remove(sz_dir);
}
else {
printf("Error in reading %s : %s/n", sz_dir, strerror(errno));
}
}
主要是遍历路径,知道遍历就好删除了
当时没有找到文件类型的宏定义,只好先遍历输出类型看看。注意Linux系统内部将路径看作特殊的文件,8是普通文件,4是路径,而“.”和“..“的类型都是4,要区别一下
void remove_dir(char* sz_dir)
{
char subname[256];
DIR *pdir = NULL;
struct dirent *pdirent = NULL;
pdir = opendir(sz_dir);
if (pdir) {
//printf("into dir %s/n", sz_dir);
while ((pdirent = readdir(pdir)) != NULL) {
//printf("type is %d/n", pdirent->d_type);
//printf("name is %s/n", pdirent->d_name);
if (pdirent->d_type == 8) {
sprintf(subname, "%s/%s", sz_dir, pdirent->d_name);
remove(subname);
}
if (pdirent->d_type == 4
&& strcmp(pdirent->d_name, ".") != 0
&& strcmp(pdirent->d_name, "..") != 0) {
sprintf(subname, "%s/%s", sz_dir, pdirent->d_name);
remove_dir(subname);
}
}
closedir(pdir);
remove(sz_dir);
}
else {
printf("Error in reading %s : %s/n", sz_dir, strerror(errno));
}
}
相关文章推荐
- Linux下递归遍历指定目录下的文件内容并删除的函数实现
- [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径
- 递归删除文件,文件夹 linux
- PHP递归删除目录的函数
- linux C 递归找出一个路径下的所有文件
- linux学习(6) ls(查看文件,目录) 复制、删除与移动: cp, rm, mv,取得路径的文件名称与目录名称
- linux下压缩与解压缩的简单记忆方法;递归删除文件夹
- php自定义函数之递归删除文件及目录
- 在Linux系统下递归删除文件或目录的方法
- 利用rmdir()函数实现PHP递归删除目录
- linux 命令系列之 ACL最大权限,删除,递归(31)
- 在linux程序里面,知道一个函数地址,改函数是属于某个动态库的,怎么样得到这个动态库的全路径名(转)
- linux cp -r chmod -R 递归拷贝 删除 改权限
- 在Linux下获取当前运行程序可执行文件全路径(不使用real_path()函数)
- linux 递归正序倒序删除文件夹及文件
- SQL2000 函数递归显示路径
- PHP basename 函数 linux下中文路径的问题解决方法
- linux目录中递归删除同名文件夹
- linux(ubuntu 14.04)安装,删除mysql,更改数据库路径(datadir)和帐户密码
- [转]linux下递归删除某个文件或者目录