完全访问硬盘所有文件夹,并在每一个文件夹新建一个txt文件,会者进入.
///以下是遍历所有文件夹的函数,
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]);
}
//问题出现了,调试错误信息为:路径不存在.请各位大虾帮忙调试一下..
问题点数:0、回复次数:1Top
1 楼dision()回复于 2003-11-05 20:40:13 得分 0
手头没有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);//递归访问下一目录
}
改的乱乱的,请楼主别见怪,着两天系统重作,没来得及调试Top




