ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

动手实现查找小工具:优化版FindEyethion

2019-03-07 18:50:18  阅读:229  来源: 互联网

标签:include name 动手 查找 MyCountFile path fileinfo FindEyethion append


项目背景和意义

 

软件界面设计

部分源代码说明:

MyCountFile.h头文件

#pragma once
#include <string.h>
#include <vector>
#include <list>
using namespace std;

class MyCountFile
{
public:
	MyCountFile(void);
	~MyCountFile(void);
private:
	vector<string> sourcefiles;
public:
	void getFileNames();
	void getAllFiles(string path, vector<string>& files);
};

MyCountFile.cpp文件

#include "StdAfx.h"
#include "MyCountFile.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include "io.h"

MyCountFile::MyCountFile(void)
{
}


MyCountFile::~MyCountFile(void)
{
}

void MyCountFile::getFileNames()
{
	//char* sourcePath = "E:\\有病没病数据\\Osedata 3号机单独有病数据";
	char* sourcePath = "E:\\有病没病数据\\Osedata 3号机无病数据";
	
	char* sourcedist = "source.txt";
	getAllFiles(sourcePath, sourcefiles);
	
	//将vector中的string保存在txt文件中
	ofstream ofn(sourcedist);
	int size = sourcefiles.size();
	ofn << size << endl;
	for (int i = 0; i < size; i++) {
		ofn << sourcefiles[i] << endl;
	}
	ofn.close();

	
}

void MyCountFile::getAllFiles(string path, vector<string>& mfiles)
{

	//文件句柄
	long hFile = 0;
	//文件信息
	struct _finddata_t fileinfo;  //很少用的文件信息读取结构
	string p;  //string类很有意思的一个赋值函数:assign(),有很多重载版本
	string a = p.assign(path).append("\\*").c_str();
	if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
		do {
			//比较文件类型是否是文件夹
			if ((fileinfo.attrib & _A_SUBDIR))
			{
				if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) {
					//files.push_back(p.assign(path).append("\\").append(fileinfo.name));
					getAllFiles(p.assign(path).append("\\").append(fileinfo.name), mfiles);
				}
			}
			else
			{
				int m = path.find("_");
				//int k = name.find("2017-10-22");
				//string rigStr=path.substr(m+1,path.length()-1);
				//黄斑六线模式,文件以04结尾
			//	if (m>0&&rigStr=="00004")
				{
					string name = fileinfo.name;
					int n = name.find(".");
					string sub=name.substr(n+1,name.length()-1);
					if (sub=="mtsd")
					{
						mfiles.push_back(p.assign(path).append("\\").append(fileinfo.name));
						//mfiles.push_back(p.assign(path)/*.append("\\").append(fileinfo.name)*/);
					}

				}

			}

		} while (_findnext(hFile, &fileinfo) == 0);  //寻找下一个,成功返回0,否则-1
		_findclose(hFile);

	}
}

 

标签:include,name,动手,查找,MyCountFile,path,fileinfo,FindEyethion,append
来源: https://blog.csdn.net/haimianjie2012/article/details/88315759

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有