Linux搜索指定文件夹并打开最符合搜索目标名称的文件
来源:互联网 发布:i代表什么矩阵 编辑:程序博客网 时间:2024/05/18 00:19
先大致参考
关于Linux相对路径的问题:http://blog.csdn.net/yongqiangyue/article/details/7707854
关于搜索Linux文件目录下文件http://myswirl.blog.163.com/blog/static/513186422010102495152843/
open、openat函数参考UNIX环境高级编程和http://blog.csdn.net/shanshanpt/article/details/39927553与http://blog.csdn.net/wang1902568721/article/details/47796173
这里面说与目标文件名“最符合”,可自由定义最符合的条件:相同、包含、通配符匹配之类都可以,大不了加个匹配算法
#include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <sys/stat.h> #include <fcntl.h> #define BufferSize 16 /* *搜索"data"文件夹下的文件,如果有文件名为fileName的文件则获得该文件的路径,存入字符串file中 */ int fileDescreption(char* filePath, char *fileName){ DIR *dp; struct dirent *dirp; if((dp = opendir(filePath)) == NULL){ printf("Can't open filePath:%s\n", filePath); return -1; } while((dirp = readdir(dp)) != NULL){ if(strcmp(dirp->d_name,fileName) == 0){ fileName = dirp->d_name; printf("fd:%s\n", fileName); break; } } closedir(dp); char file[256] = {0}; sprintf(file,"%s%s%s",filePath,"/",fileName);//最终file为data/test,这里也可以改成调用openat函数 int fd = open(file,O_RDONLY); return fd; } void readFile(int fd){ if(fd == -1){ perror("open file"); return; } char buf[BufferSize] = {0}; while(read(fd,buf,sizeof(buf)) > 0){ } buf[BufferSize-1] = '\0'; printf("%s",buf); close(fd); } int main(){ char *fileName = "test"; char *filePath = "data"; readFile(fileDescreption(filePath,fileName)); }
原程序放在“Server”文件夹下,里面除了原程序外还有“data”文件夹,“data”文件夹下有文件“test”,
运行结果:打印出”test”文件中的内容。
0 0
- Linux搜索指定文件夹并打开最符合搜索目标名称的文件
- 搜索指定文件夹里指定格式的文件
- Java递归搜索指定文件夹下的匹配文件
- Java递归搜索指定文件夹下的匹配文件
- Java递归搜索指定文件夹下的匹配文件
- Android 遍历文件夹,搜索指定扩展名的文件
- Java递归搜索指定文件夹下的匹配文件
- Android 遍历文件夹,搜索指定扩展名的文件
- Android 遍历文件夹,搜索指定扩展名的文件
- Java递归搜索指定文件夹下的匹配文件
- Android 遍历文件夹,搜索指定扩展名的文件
- Java递归搜索指定文件夹下的匹配文件
- Android 遍历文件夹,搜索指定扩展名的文件
- Java递归搜索指定文件夹下的匹配文件
- [Linux]搜索文件是否包含指定内容并返回文件名
- 搜索指定文件夹下所有文件
- wince 搜索指定文件或文件夹
- C#打开文件夹并定位到指定的文件
- Java wait() notify()方法使用实例讲解
- POJ 3107 求树的重心
- TMS320F28335/ <1> 开发环境的搭建
- 进程之间的通信的方式有哪些,他们之间的区别是什么!或者是忧缺点
- 从ruby到x86机器语言
- Linux搜索指定文件夹并打开最符合搜索目标名称的文件
- h5-css3新增背景属性
- android开发 MVP模式介绍与实战
- servlet概念 作用 流程
- 闰年判断
- 实例分析Java Class的文件结构
- eclipse导入新工程
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )的公式对比、实现对比
- view事件分发源码学习和分析