int CAboutDlg::GetFileNameToText(char *pcFolderDir, char *pcTextDir)
{
CFile file;
CFileFind fileExist,fileFind;
CString strFolderDir=pcFolderDir,strTextDir=pcTextDir,strFileName;

int iCount=0,i,result=0; if(strFolderDir.Right(1)!="\\")
strFolderDir +="\\*.*"; BOOL res = fileFind.FindFile(strFolderDir);//开始查找文件
while(res)
{
res= fileFind.FindNextFile();
//如果文本文件不存在的话,则创建一个,否则直接写入。
if(!fileExist.FindFile(pcTextDir))
file.Open(strTextDir,CFile::modeCreate|CFile::modeWrite);
else
file.Open(strTextDir,CFile::modeWrite);

file.SeekToEnd();//将光标移到文件最后位置
if(fileFind.IsDots())
{
file.Close();
continue;
}
if(fileFind.IsDirectory())
{
//如果是一个子目录,使用递归进入到下一级目录
iFolderNum++;//文件夹数目累加
iCount++;//在文本文件中 ,累计制表符号的次数
strFolderDir=fileFind.GetFilePath();//获得文件夹路径
strFileName=fileFind.GetFileName();//获得文件夹名称 char *pcFileName=(LPTSTR)(LPCTSTR)strFileName; //转为char* 类型数据
char *pcFolderDir=(LPTSTR)(LPCTSTR)strFolderDir;//转换成char* 类型数据
file.SeekToEnd();
for(i=0;i<iCount+1;i++)
file.Write("\t",strlen("\t"));
file.Write(pcFileName,strlen(pcFileName));// fileFind.Close();
file.Close();
GetFileNameToText(pcFolderDir,pcTextDir);//递归函数
file.Open(strTextDir,CFile::modeWrite);
file.Write("\r\n",strlen("\r\n"));
file.Close(); }
else if(! fileFind.IsDirectory() && ! fileFind.IsDots())//如果是文件
{
iFileNum++;//文件个数累加
strFileName=fileFind.GetFileName();
char *pcFileName=(LPTSTR)(LPCTSTR)strFileName;//获得文件夹名称

         file.Write("\r\n",strlen("\r\n"));
for(i=0;i<=iCount+1;i++)
{ file.Write("\t",strlen("\t"));
file.SeekToEnd();
}
file.Write(pcFileName,strlen(pcFileName));//显示文件的名称
file.Close();
}
}
fileFind.Close();//查找文件完毕
CString str_Folder="The total number of Folders is:" + iFolderNum; 
/* CString str_File="The total number of Files is: "+iFileNum;
file.Open(strTextDir,CFile::modeWrite);
file.SeekToEnd();
file.Write((LPTSTR)(LPCTSTR)str_Folder,strlen((LPTSTR)(LPCTSTR)str_Folder));
file.SeekToEnd();//指针移动到最后
file.Write("\r\n",strlen("\r\n"));
file.Write((LPTSTR)(LPCTSTR)str_File,strlen((LPTSTR)(LPCTSTR)str_File));
file.Close();*/ return 0;
}
函数调用是 CAboutDlg dlg;
           dlg.GetFileNameToText("F:\\res1","F:\123.txt");//123.txt是我生成的文本文件这是我遍历一个文件夹,想在文本中按照文件夹的树状结构,列举出每个文件的名字。我怎么排,都排不出那种树状结构。我逻辑太混乱了,请哪位大人帮我弄一下。多谢啊