chunkAnalyse:C++下读取指定文件下的指定文件或文件

用C++读取指定文件夹下的所有文件或文件夹信息



用FindFirstFile 和 FindNextFile 查找目标文件

包含的头文件:Windows.h(usually if you want to take operation on system by system function you should include this header file)

语法:HANDLE FindFirstFile(In LPCWSTR fileName,Out LPWIN32_FIND_DATA pfindFileData)
LPCWSTR  是重定义的类似于字符串指针的数据类型;
LPWIN32_FIND_DATA 是重定义的WIN32_FIND_DATA指针数据类型,一般使用&对WIN32_FIND_DATA 对象取址作为输入

输入:
fileName: 指定目标文件的地址和文件名,可用通配符
pfindFileData:指定记录文件信息的结构体的内存地址,FindFirstFile 将文件信息记录在以pfindFileData开始的地址中。
输出:
HANDLE fHandle: 查找句柄,用于 FindNextFile and FindClose 函数。

取文件名:
findFileData.cFileName: cFileName 是结构体对象findFileData的成员,存储的是文件的名字

示例代码:
#include 
     
     
      
       // 定义了WIN32_FIND_DATA,HANDLE等数据类型;FindFirstFile,FindNextFile等windows 系统函数
#include 
      
      
       
       
#include 
       
       
        
         

typedef std::string String;
typedef std::vector
        
        
         
          fileVec;

void searchFile(fileVec& fileNameVec)
{
	WIN32_FIND_DATA findFileData; //  WIN32_FIND_DATA 为结构体类型,findFileData用于存储目标文件的信息(文件名,文件类型,大小等)
	HANDLE fHandle; // 句柄,用于FindNextFile和FindClose
	String  fileName = "D:/chunkAnalyse/Data/*.txt";// 目标文件位置和名字,可以使用通配符

	fHandle = FindFirstFile((LPCWSTR)fileName.c_str(), &findFileData); // 查找满足fileName要求的第一个文件,此时findFileData记录该文件的信息
	fileNameVec.push_back(findFileData.cFileName); // 将第一个文件的名字存入vector容器中
	while (FindNextFile(fHandle, &findFileData) != 0)
	{
		fileNameVec.push_back(findFileData.cFileName);
	}
	FindClose(fHandle);
}
        
        
       
       
      
      
     
     


总结:
当操作对象是系统资源的时候,一般而言我们都需要使用系统的接口函数,要调用window系统的接口我们通常都需要#include <Windows.h>, 在 Windows.h以及他所链接到的头文件中定义了 Windows的所有资料型态、函数调用资料结构和常数识 别字, 如:
WINDEF.H 基本数据类型定义。
WINNT.H 支持Unicode的类型定义。
WINBASE.H Kernel(内核)函数。
WINUSER.H 用户界面函数。
WINGDI.H 图形设备接口函数。
for example,使用Windows接口我们可以读取系统时间。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值