void CFindFilesDlg::OnBnClickedButton1()
{
CString c1;
CString stredit;
CString strtemp;
HANDLE hFile;
WIN32_FIND_DATA fileinfo;
DWORD errorcode = 0;
m_Edit1.GetWindowText(c1);
if(!c1.IsEmpty())
{
hFile=FindFirstFile("f://*.*",&fileinfo);
while(hFile!=INVALID_HANDLE_VALUE&&errorcode!=ERROR_NO_MORE_FILES)
{
strtemp=fileinfo.cFileName;
stredit=stredit+"/r/n";
stredit=stredit+strtemp;
FindNextFile(hFile,&fileinfo);
errorcode=GetLastError();
}
if(errorcode==ERROR_NO_MORE_FILES)
{
m_cedit1.SetWindowText(stredit);
MessageBox("检索结束");
}
CloseHandle(hFile);
}
}
{
CString c1;
CString stredit;
CString strtemp;
HANDLE hFile;
WIN32_FIND_DATA fileinfo;
DWORD errorcode = 0;
m_Edit1.GetWindowText(c1);
if(!c1.IsEmpty())
{
hFile=FindFirstFile("f://*.*",&fileinfo);
while(hFile!=INVALID_HANDLE_VALUE&&errorcode!=ERROR_NO_MORE_FILES)
{
strtemp=fileinfo.cFileName;
stredit=stredit+"/r/n";
stredit=stredit+strtemp;
FindNextFile(hFile,&fileinfo);
errorcode=GetLastError();
}
if(errorcode==ERROR_NO_MORE_FILES)
{
m_cedit1.SetWindowText(stredit);
MessageBox("检索结束");
}
CloseHandle(hFile);
}
}
说明:
在上述代码中FindFirstFile第一个参数需要一个路径,但要写*.*,表示从所有文件中找到的第一个.但写f:或者f:双斜杠都返回无效句柄.
如果f://1.txt 则对特定文件进行搜索,返回找到的第一个,找到的文件的文件结构被记录在WIN32_FIND_DATA结构体里
FindNextFile第一个参数是FindFirstFile的返回值,可以接着上次结果继续寻找
FindFirstFile的返回值若是INVALID_HANDLE_VALUE, 表示所找的文件未找到。