C++文件操作——查找某一类文件的三种方法

方法一、利用WIN32的FindFirstFile与FindNextFile

FindFirstFile函数是查找到目录下的第一个文件或目录,FindNextFile函数是查找下一文件或目录。
根据文件名查找文件。该函数到一个文件夹(包括子文件夹)去搜索指定文件 如果要使用附加属性去搜索文件的话 可以使用FindFirstFileEx函数。

HANDLE FindFirstFile(
    LPCTSTR lpFileName,//filename 文件名(包括路径)
    LPWIN32_FIND_DATA lpFindFileData//databuffer 指向一个用于保存文件信息的结构体
);
返回值:
    如果调用成功返回一个句柄,可用来做为FindNextFile或 FindClose参数
    调用失败 返回为INVALID_HANDLE_VALUE(即-1) ,可调用GetLastError来获取错误信息

如果要用此函数去查找某类型的文件名时,举例代码如下:
查找D盘下的所有txt文件
WIN32_FIND_DATA fileinfo;
DWORD errorcode = 0;
HANDLE hFile;
TempPath="D:\\test\\*.txt";
hFile = FindFirstFile(TempPath,&fileinfo);
m_listbox.ResetContent();
while(hFile!=INVALID_HANDLE_VALUE&&errorcode!=ERROR_NO_MORE_FILES)
{
	//
	m_listbox.AddString(fileinfo.cFileName);
	FindNextFile(hFile,&fileinfo);
	errorcode=GetLastError();
}
if(errorcode==ERROR_NO_MORE_FILES)
{
	MessageBox("检索结束");
}
CloseHandle(hFile);
方法二、利用C语言函数_findfirst 和 _findnext

_finddata_t File;
long FileHandle;
TempPath="D:\\test\\*.txt";
i = FileHandle = _findfirst(TempPath,&File);
m_listbox.ResetContent();
while( i != -1 )
{
  m_listbox.AddString(File.name);
  i = _findnext( FileHandle, &File );
}
		
_findclose(FileHandle);
方法三、利用CFileFind类
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("D:\\test\\*.txt"));
while (bWorking)
{
  bWorking = finder.FindNextFile();
  m_listbox.AddString(finder.GetFileName());
} 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值