最近在做一个局域网内的文件(夹)传输『VC、winsock』,但总是不能完全遍历选定文件夹内的所有文件。下面将代码贴出来,请高手指教.........
CMyDlg::Search(CString Targ,CString Dest)
{
CFileFind find;
BOOL bFind=find.FindFile(Targ+"//*.*");
while(bFind)
{
bFind=find.FindNextFile();
CString FileName=find.GetFileName();
CString Src=Targ+"//"+FileName;//将要上传的文件(夹)路径
CString Des=Dest+"//"+FileName;//接受文件(夹)路径
if(find.IsDirectory())
{
if(find.IsSystem()||find.IsDots())
continue;
Build(Des,Src);//创建文件夹 ,创建完成之后再次调用Search。
}
else
{
PutFolder(Src,Des);//上传文件
}
}
}
CMyDlg::Build(CString Nam,CString Num)
{
COMMAND cmd; //Create Dir
memset((char*)&cmd,0,sizeof(cmd));
cmd.ID=CreateDir;
strcpy((char*)&cmd.lparam,Nam.LockBuffer());
if(send(server,(char*)&cmd,sizeof(cmd),0)==SOCKET_ERROR)
AfxMessageBox("发送消息失败!");
Search(Num,Nam);
}