获取目录中所有含有特定后缀名的文件
2015-01-21 10:22
162 查看
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <sys/types.h> #include <string.h> #ifndef oj_dir #define oj_dir "/home/rain/oj" #endif //取出目录中.in文件 //参数中,dir是要查询的目录,in_files数组保存每个.in文件,函数返回所有.in文件个数 int printdir(char *dir, char* in_files[]) { DIR *dp; struct dirent *entry; if ((dp = opendir(dir)) == NULL) { fprintf(stderr, "cannot open directory: %s\n", dir); return 0; } chdir(dir); int in_file_num = 0; char dir_prefix[20], dir_suffix[20]; while((entry = readdir(dp)) != NULL) { /* ignore . and .. ,分别代表当前目录和上一级目录*/ if (strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0) { continue; } sscanf(entry->d_name, "%[^.].%[^.]", dir_prefix, dir_suffix); if (strcmp("in", dir_suffix) == 0) { in_files[in_file_num ++] = entry->d_name; } } chdir(oj_dir); closedir(dp); return in_file_num; } int main(int argc, char const *argv[]) { char* in_files[10]; int in_file_nums = printdir("/home/rain/data/1001", in_files); printf("%d\n", in_file_nums); int i; for (i = 0; i < in_file_nums; ++i) { printf("%s\n", in_files[i]); } return 0; }
目录如下:
rain@HY:~/oj$ gcc get_file_with_same_suffix.c -o get_file_with_same_suffix
rain@HY:~/oj$ ./get_file_with_same_suffix
4
data.in
data3.in
data4.in
data2.in
相关文章推荐
- dos下搜索当前目录及其子目录下的所有特定后缀名的文件并拷贝到新文件夹
- bash获取特定目录下所有文件的全路径
- TCHAR CHAR WCHAR转换 和 获取一个目录下所有文件名及修改特定文件
- Java递归获取目录下所有特定后缀文件
- 获取当前目录下的所有文件
- 用dos命令删除某目录下所有特定类型的文件
- 获取目录下所有的文件(非递归)
- C++获取目录下所有文件列表函数
- java获取指定目录下所有指定扩展名的文件
- 获取一个目录下的所有文件 (转载)
- C#读取特定目录下的所有文件
- windows下获取某个目录下的所有文件信息
- 获取一个目录下的所有文件
- 在Linux将某个文件copy到特定目录下的所有文件夹下的特定文件夹里
- MFC获取指定目录下的所有文件函数
- 获取一个目录下的所有文件
- 获取某目录下的所有文件(包括子目录下文件)的数量(C#/VB.NET)
- 获取指定目录下的所有文件
- 获取path目录下的所有文件的文件名(不包括子目录)
- sed替换所有目录下特定文件