【Linux C】遍历文件夹下的某种类型的文件
2016-05-18 22:39
471 查看
实现思路
这里用到的是通过获取ls命令的执行结果,然后再过滤格式代码实现
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #define LEN_FILE_NAME 64 #define LEN_COMMAND 32 #define FOLDER_NAME "./folder/" #define FILE_FORMAT_TXT ".txt" #define FILE_FORMAT_MP3 ".mp3" #define FILE_FORMAT_MP4 ".mp4" static bool fgFindFile = false; void file_filter(const char * fileName, const char * format) { if(NULL == strstr(fileName, format)) { return; } printf("Get File Name : %s", fileName); fgFindFile = true; } void get_system_cmd(char * cmd) { char command[LEN_COMMAND] = {0}; strcpy(command, "ls "); strcat(command, FOLDER_NAME); strcat(command, "\0"); memcpy(cmd, command, strlen(command)); } void main(int argc, char * argv[]) { FILE *fp; char readFileName[LEN_FILE_NAME] = {0}; char command[LEN_COMMAND] = {0}; get_system_cmd(command); fp = popen(command, "r"); if(NULL == fp) { printf("popen error\n"); exit(1); } while(fgets(readFileName, LEN_FILE_NAME, fp)) { file_filter(readFileName, FILE_FORMAT_MP3); } if(false == fgFindFile) { printf("Did not find this format file, please try again!!!\n"); } pclose(fp); }
实现效果
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- 如何组织构建多文件 C 语言程序(二)
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程