linux c实现递归删除命令 rm -r
来源:互联网 发布:td网络健康度指标包括 编辑:程序博客网 时间:2024/05/18 05:01
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <libgen.h>
#include <string.h>
void rmr(char* path)
{
DIR* dir = opendir(path);
if(dir == NULL)
perror("opendir"),exit(-1);
struct dirent* ent;
char buf[256];
while((ent=readdir(dir)))
{
if(ent->d_type == 4)
{
if(strcmp(ent->d_name,".")==0||strcmp(ent->d_name,"..")==0)
continue;
sprintf(buf,"%s/%s",path,ent->d_name);
rmr(buf);
}
if(ent->d_type == 8)
{
sprintf(buf,"%s/%s",path,ent->d_name);
if(remove(buf)!=0) perror("remove"),exit(-1);
}
}
if(rmdir(path)!=0) perror("rmdir"),exit(-1);
}
int main(int argc,char* argv[])
{
if(argc != 2)
{
printf("Usage:%s directory name",basename(argv[0]));
exit(-1);
}
rmr(argv[1]);
printf("rm -r %s success.\n",argv[1]);
return 0;
}
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <dirent.h>
#include <libgen.h>
#include <string.h>
void rmr(char* path)
{
DIR* dir = opendir(path);
if(dir == NULL)
perror("opendir"),exit(-1);
struct dirent* ent;
char buf[256];
while((ent=readdir(dir)))
{
if(ent->d_type == 4)
{
if(strcmp(ent->d_name,".")==0||strcmp(ent->d_name,"..")==0)
continue;
sprintf(buf,"%s/%s",path,ent->d_name);
rmr(buf);
}
if(ent->d_type == 8)
{
sprintf(buf,"%s/%s",path,ent->d_name);
if(remove(buf)!=0) perror("remove"),exit(-1);
}
}
if(rmdir(path)!=0) perror("rmdir"),exit(-1);
}
int main(int argc,char* argv[])
{
if(argc != 2)
{
printf("Usage:%s directory name",basename(argv[0]));
exit(-1);
}
rmr(argv[1]);
printf("rm -r %s success.\n",argv[1]);
return 0;
}
0 0
- linux c实现递归删除命令 rm -r
- linux c 实现rm命令
- linux删除命令rm
- Linux c源码之rm递归删除文件
- linux下递归删除文件夹,简单实现rm的功能
- Linux rm删除文件夹命令
- Linux rm命令 删除文件夹
- Linux rm删除文件夹命令
- linux删除文件命令rm
- Linux rm删除文件夹命令
- Linux rm删除文件夹命令
- Linux rm删除文件夹命令
- Linux rm命令 删除文件夹 文件 命令
- linux rm -f rm -rf 命令:删除文件和文件夹
- Linux删除文件夹命令--rm, rmdir
- linux强制删除目录命令rm -rf
- Linux删除文件夹命令--rm -rf
- linux 删除文件 rm 命令的用法
- 彻底解决魅族手机无法彻底卸载应用的bug
- 写于2016年10月31日晚
- Codeforces Round #183 (Div. 2)-C. Lucky Permutation Triple
- Day52:S6 Final
- Java API—— File类
- linux c实现递归删除命令 rm -r
- 如何使用Markdown优雅的写博客
- 【noip 2015】字串 dp
- SHT30温湿度传感器工作原理
- iOS使用NavigationController经常出现的问题
- -Dmaven.multiModuleProjectDirectory system property is not set. 报错IDEA修改方法
- 取石子游戏(POJ1067)的原理
- JDBC浅谈(一)
- super关键字