Linux中利用c语言删除某个目录下的文件
利用c语言删除目录下文件
最近这段时间工作内容是关于Linux下的简单文件操作,以前对于Linux系统下的文件操作函数都不是太熟悉,经过这次实践,对这些函数使用有了一定的了解
如何创建文件,读写文件,这些简单的我想大家应该是比较熟悉的,我所介绍的是如何遍历某个目录,并且删除该目录下的文件(可以指定后缀名),并且也可以指定
文件的修改时间范围(多少小时以前的旧文件可以删除),下面就是简单的函数实现,仅供初学者参考(毕竟我也是初学者\(^o^)/~)
#include#include #include #include #include #include #include #defineFILE_MAX_LEN256 voidrmv_old_files(constchar*path,constchar*suf,inthours) { charfilename[FILE_MAX_LEN]={0}; structtm*TM; structdirent*dirp; structstatstatbuf; DIR*dp=NULL; time_tcurr_time; intnameLen,offset; char*chTemp=NULL; curr_time=time((time_t*)NULL); dp=opendir(path); if(NULL==dp) { return; } while((dirp=readdir(dp))!=NULL) { if(strcmp(dirp->d_name,".")==0||strcmp(dirp->d_name,"..")==0) { continue; } nameLen=strlen(dirp->d_name); chTemp=dirp->d_name; if(*suf!='\0') { offset=nameLen-strlen(suf); if(offset<0||strncmp(suf,chTemp+offset,strlen(suf))!=0) { continue; } } sprintf(filename,"%s%s",path,dirp->d_name); if(!stat(filename,&statbuf)) { /*checkthest_mtimeofthefile,ifmorethanretention_hoursagothendeleteit*/ if(curr_time-statbuf.st_mtime>=hours*3600&&S_ISREG(statbuf.st_mode)) { unlink(filename); } } } closedir(dp); }
附:linux删除指定目录下的文件命令
rm-f指定目录*
#最经典的方法,删除指定目录下的所有类型的文件
2.find指定目录-typef-delete或find指定目录-typef-execrm-f{}\;
#用find命令查找指定目录下的所有普通文件并删除or用find命令的处理动作将其删除
3.find指定目录-typef|xargsrm-f
#用于参数列表过长;要删除的文件太多
4.rm-f`find指定目录-typef`
#删除指定目录下的全部普通文件
5.fordeletein`ls–l指定目录路径`;dorm-f*;done
#用for循环语句删除指定目录下的所有类型的文件
总结
到此这篇关于Linux中利用c语言删除某个目录下文件的文章就介绍到这了,更多相关Linux用c语言删除目录下文件内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。