///以下是遍历所有文件夹的函数,
void CMy3Dlg::browser(CString s)
{
CFileFind ff;
CString dir=s;
if(dir.Right(1)!="\\")
{
     dir+="\\";}
dir+="*.*";
bool res=ff.FindFile(dir);//找到当前目录while(res)
{
     res=ff.FindNextFile();//当找到最后一个文件时,此时会返回假     if(!ff.IsDirectory()&&!ff.IsDots())//是文件,删除它
     {
      
 copyfile(ff.GetFilePath());//这里是调用自定义函数,写TXT文件.
     }
     else if(ff.IsDots())
         continue;
     else
         if(ff.IsDirectory())//是目录,
         {
            dir=ff.GetFilePath();
copyfile(dir);//调用写文件函数 
             browser(dir);//递归访问下一目录         }

//RemoveDirectory(s);//最终目录清空,删除当前目录
ff.Close();}////以下是创建一个文件,并写入一字符串.
void CMy3Dlg::copyfile(CString s)
{
CString str="TXT文件内容";CString temp3; 
s+="\\";s+="hello.txt";
for(int i=1;i<=s.GetLength()+1;i++)
    if(s.Left(i).Right(1)!="\\")
          temp3+=s.Left(i).Right(1);
else
temp3+="\\\\";
  CFile file(s,CFile::modeCreate|CFile::modeWrite); for(int file2=0;file2<1;file2++)
file.Write(str,str.GetLength());

file.Close();
}
///////////////////////////////////////////////////////
//在初始化时,写入路径...
BOOL CMy3Dlg::OnInitDialog()
{////新增的代码;
 CString dir[4]={"C:\\","d:","e:\\","f:\\"};
for(int i=0;i<4;i++)
browser(dir[i]);
}//问题出现了,调试错误信息为:路径不存在.请各位大虾帮忙调试一下..

解决方案 »

  1.   

    手头没有vc,只有分析一下,楼主别见怪
    1。如果可以运行的话,楼主的程序连文件都识别成目录了(应该是这样子的,我一前也遇到过,hehe)
    2。这样改一下看看
    BOOL res
     res=ff.FindFile(dir);//找到当前目录
      while(res)
    {    //copyfile(ff.GetFilePath();
         res=ff.FindNextFile();//当找到最后一个文件时,此时会返回假     //if(!ff.IsDirectory()&&!ff.IsDots())//是文件,删除它
        // {
          
     //copyfile(ff.GetFilePath();//这里是调用自定义函数,写TXT文件.
         //}
         //else if(ff.IsDots())
             //continue;
         //else
             if(ff.IsDirectory())
     if(!ff.IsDots())//是目录,
             {
                dir=ff.GetFilePath();
    //copyfile(dir);//调用写文件函数 
                 browser(dir);//递归访问下一目录         }
    改的乱乱的,请楼主别见怪,着两天系统重作,没来得及调试