用API实现遍历文件目录

void FindFile(LPTSTR strPath)  //strPath="C:\\a\\"
{
	TCHAR strRoot[MAX_PATH];
	TCHAR strSearchFile[MAX_PATH];
	TCHAR strOut[MAX_PATH];
	WIN32_FIND_DATA fData;

	ZeroMemory(strRoot, sizeof(strRoot));
	ZeroMemory(strSearchFile, sizeof(strSearchFile));
	ZeroMemory(strOut, sizeof(strOut));
	ZeroMemory(&fData, sizeof(WIN32_FIND_DATA));

	lstrcpy(strSearchFile, strPath);
	lstrcat(strSearchFile, _T("*.*"));

	HANDLE hFile = FindFirstFile(strSearchFile, &fData);
	if(hFile == INVALID_HANDLE_VALUE)
		return;
	do
	{
		if(fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
			&& lstrcmp(fData.cFileName, _T("."))
			&& lstrcmp(fData.cFileName, _T("..")))               //Windows下有2个默认目录"."和".."
		{
			lstrcpy(strRoot, strPath);
			lstrcat(strRoot, fData.cFileName);
			lstrcat(strRoot, _T("\\"));

			FindFile(strRoot);
		}
		else
		{
			if(lstrcmp(fData.cFileName, _T("."))
			&& lstrcmp(fData.cFileName, _T("..")))
			{
				lstrcpy(strOut, strPath);
				lstrcat(strOut, fData.cFileName);
				ListBox_AddString(m_hWnd, strOut);         //输出文件名到ListBox
				ZeroMemory(strOut, sizeof(strOut));
			}
		}
	}while(FindNextFile(hFile, &fData) != 0);

	FindClose(hFile);
	return ;
}

以上代码只是简单实现了遍历目录下的文件。给自己留个记号。以后说不定要用到!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值