Linux下遍历文件夹功能实现代码——20110802
2011-08-02 16:00
197 查看
#include <stdio.h> #include <malloc.h> #include <iostream> #include <stdio.h> #include <stdarg.h> #include <string.h> #include <time.h> #include <dirent.h> #include <sys/stat.h> #include <errno.h> #include <sys/types.h> long ndir, nfile; int isdir(char *); void search(char *, char *); //判断是否为路径 int isdir(char *name) { struct stat stbuf; if(lstat(name, &stbuf) < 0) { //printf( "stat:%s:%s\n",name, strerror(errno)); return 0; } else return (S_ISDIR(stbuf.st_mode))? 1 : 0; } //遍历文件夹判断是否为视频文件,为视频文件则从视频文件中获取数据 void search(char * path, char * fname) { DIR *dirp; struct dirent *dir; char buffer[BUFSIZ]; char filepath[256] = ""; if(isdir(path)) { if((dirp = opendir(path)) == NULL) { printf( "Error opening dir %s", path); printf( ":%s\n",strerror(errno)); return; } } else return; while((dir = readdir(dirp))!= NULL) { if(!strcmp(dir-> d_name,".") || !strcmp(dir-> d_name,"..")) { //nothing } else { bzero(buffer, sizeof(buffer)); strncat(buffer, path, sizeof(buffer)); if(path[strlen(path)- 1] == '/') { //noting } else strncat(buffer, "/", sizeof(buffer)); strncat(buffer, dir->d_name, sizeof(buffer)); if(isdir(buffer)) { ndir++; search(buffer, fname); } else { nfile++; string filename(dir->d_name); int nResult1=filename.find(".mp4"); int nResult2=filename.find(".264"); if(nResult1>0 || nResult2>0) { printf("found:%s/%s\n",path,dir->d_name); sprintf(filepath,"%s/%s",path,dir->d_name); //从视频文件中 //Demo_GetStream_VideoFile(filepath); } } } } closedir(dirp); }
使用方法:
直接调用search(char * path, char * fname)函数即可,注:fname暂时不起作用,调用的时候可以为空,该函数的作用是寻找path目录(包括子目录)下后缀名为“.mp4”或者“.264”的文件,并将文件全路径打印到屏幕。
测试通过。
相关文章推荐
- Linux下实现流水灯等功能的LED驱动代码及测试实例
- linux下递归删除文件夹,简单实现rm的功能
- Linux系统学习方法——写给小白 每个人都有心中向往的一些事情,而我,刚进实验室,看到师兄师姐在电脑前面噼里啪啦的敲代码,真的好羡慕,看着他们实现一个又一个的功能满心欢喜,我也很想尝试。后来了解到师
- PHP遍历某个目录下的所有文件和子文件夹的实现代码
- php遍历文件夹代码实现
- linux下shell递归遍历文件夹的实现
- 实现遍历FTP文件夹下的所有文件夹的功能,但是还有编码问题没解决,求帮助
- JS 实现遍历某一磁盘文件夹下目录的功能
- Linux系统遍历文件夹 获取文件大小的操作(C语言实现)
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- java实现sftp客户端上传文件以及文件夹的功能代码
- linux 代码实现文件夹及其文件的
- Linux 网络协议栈开发代码分析篇之VLAN(二)—— Linux下VLAN功能的实现概述
- php遍历某个文件夹以及遍历里面的所有文件夹代码实现
- linux下让irb实现代码自己主动补全的功能
- Python与C++ 遍历文件夹下的所有图片实现代码
- Python遍历文件夹和读写文件的实现代码
- linux+QT实现文件夹拷贝并附带进度功能
- Jquery实现三层遍历删除功能代码
- Jquery实现三层遍历删除功能代码