下面这段代码演示了查找一个目录下所有文件的过程,将文件名存放在result.txt文件中。
///////////////////////////////////////////////////////////////////////////////////
void CMyDlg::OnCollectAllFileName()
{
// TODO: Add your control notification handler code here
CStdioFile myFile("C:\\result.txt",CFile::modeCreate|CFile::modeWrite|CFile::typeText);
CFileFind myFinder;
CStringList myList;
CString FileName;
myList.AddTail("C:\\Common"); //查找目录
while(!myList.IsEmpty())
{
FileName=myList.GetHead()+_T("\\*.*");
if(myFinder.FindFile(LPCTSTR(FileName))) //查找所有文件
{
while(myFinder.FindNextFile()) //继续查找
{
if(myFinder.IsDots()) continue; //不是文件
myFile.WriteString(LPCTSTR(myFinder.GetFilePath()+_T("\n")));
//将结果输出
if(myFinder.IsDirectory())
myList.AddTail(myFinder.GetFilePath());
}
myFile.WriteString(LPCTSTR(myFinder.GetFilePath()+_T("\n")));
}
myList.RemoveHead();
}
myFile.Close();
MessageBox("search has been finished");
}
小结:经过测试的结果表明:C盘的目录生成之后大概有25M的比特数据流,因此在搜索的过程中会出现以
下的提示:
DAMAGE: after Nornal block(#882780)
暂时还不能解决这个问题:据有关的报道属于指针访问问题:但是程序中显然没有指针的存在。