对目录内所有文件(包括子文件夹文件)读取处理
来源:互联网 发布:java数据脱敏技术 编辑:程序博客网 时间:2024/05/22 08:19
#include <windows.h>
#include <iostream>#include <cstdio>#include <cstring>#include <stack>using namespace std;void pathcmp(char *path,char *wfd,char *filePath){int l1 = strlen(path);int l2 = strlen(wfd);int pos = 0;for (int i = 0 ; i < l1 ; i++)filePath[pos++] = path[i];filePath[pos++] = '\\';for (int i = 0 ; i < l2 ; i++)filePath[pos++] = wfd[i];filePath[pos] = '\0';}void getSolveName(char *path,char *wfd,int Case,char *solveName){int l1 = strlen(path);int l2 = strlen(wfd)-4;int pos = 0;for (int i = 0 ; i < l1 ; i++)solveName[pos++] = path[i];solveName[pos++] = '\\';for (int i = 0 ; i < l2 ; i++)solveName[pos++] = wfd[i];solveName[pos++] = '_';stack<int> s;while (Case){s.push(Case%10);Case /= 10;}while (!s.empty()){solveName[pos++] = s.top() + '0';s.pop();}solveName[pos++] = '.';solveName[pos++] = 't';solveName[pos++] = 'x';solveName[pos++] = 't';solveName[pos] = '\0';}bool Search(char *Path){HANDLE hFind;WIN32_FIND_DATA wfd;ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA));char PathTemp[512];memset(PathTemp,0,sizeof(PathTemp));sprintf(PathTemp,"%s\\*.*",Path);hFind=FindFirstFile(PathTemp,&wfd);if(INVALID_HANDLE_VALUE==hFind)//如果没有找到或者查找失败{//MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK);return false;}do{if('.'==wfd.cFileName[0])//如果是当前目录或者是上级目录,就直接进入下一次循环{continue;}if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果该文件是文件夹{sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);//MessageBox(NULL,PathTemp,"Directory",MB_OK);//Search(PathTemp,File);//进入该文件夹继续搜索(递归)Search(PathTemp);//进入该文件夹继续搜索(递归)}else{//MessageBox(NULL,"Found",wfd.cFileName,MB_OK);//找到文件//找到文件后对文件进行处理char filePath[100];//文件地址以及文件名 pathcmp(Path,wfd.cFileName,filePath);//printf ("%s\n",wfd.cFileName);FILE *fp_que = fopen(filePath,"r");int Case = 1;int a,b;while (~fscanf (fp_que,"%d %d",&a,&b) && fp_que != NULL){char solveName[100];getSolveName(Path,wfd.cFileName,Case++,solveName);FILE *fp_solution = fopen(solveName,"w");fprintf (fp_solution,"%d\n",a+b);fclose(fp_solution);//关闭输出文件 }fclose(fp_que);//关闭输入文件 }}while(FindNextFile(hFind,&wfd));//文件查找的条件FindClose(hFind);//关闭FIND句柄return true;}int main(){Search("D:\\a+b");return 0;}
网上查的一部分,自己补了一部分,码一下,以后也许会用到。
0 0
- 对目录内所有文件(包括子文件夹文件)读取处理
- Java获取一个文件夹内的所有文件(包括所有子文件夹内的)
- 获取文件夹内所有文件包括子文件夹
- oc 文件操作,查看目录下所有文件包括子文件夹内包含的所有文件,循环遍历递归
- 递归列出目录中的所有文件,包括子文件夹
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名(转载)
- Java自动读取文件夹下的所有文件(包括子文件夹)
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
- python实现读取给定文件夹下文件目录与文件信息(包括子文件夹)
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- windows api 实现删除指定目录下的所有文件(包括子文件夹下的所有文件)
- python如何获取一个文件夹内包括子文件夹所有文件的名字和路径
- Spring Cloud系列五 之 服务网关
- 视频播放器(SurfaceView+MediaPlayer+SeekBar,VideoView+MediaController)
- 安卓漫漫路之AndroidManifest权限大全.
- 正则表达式2(常用)
- Opencv2系列学习笔记4(灰度直方图)
- 对目录内所有文件(包括子文件夹文件)读取处理
- 设计模式-单例模式
- POJ-3087 Shuffle'm Up
- 十八、Hive 中UDF编程
- 21天学通C++之C++程序的组成部分
- 文章标题
- hdu 2222 ac自动机模板题
- Android自定义闹钟
- 循环,运算符,语句块,typedef工具,字符输入get(),文件尾条件,二维数组,时间clock()