function TForm1.DoCopyDir(strfilepath:string): Boolean;<br>var<br> hFindFile:Cardinal;<br> t,tfile:String;<br> sCurDir:String[255];<br> FindFileData:WIN32_FIND_DATA;<br>begin<br><br> //先保存当前目录<br> sCurDir:=strfilepath;<br> ChDir(strfilepath);<br><br> hFindFile:=FindFirstFile('*.*',FindFileData);<br> if hFindFile<>INVALID_HANDLE_VALUE then<br> begin<br> repeat<br> tfile:=FindFileData.cFileName;<br> if (tfile='.') or (tfile='..') then<br> Continue;<br> if FindFileData.dwFileAttributes= FILE_ATTRIBUTE_DIRECTORY then<br> begin<br> NMFTP1.MakeDirectory(tfile);<br> NMFTP1.ChangeDir(tfile);<br> DoCopyDir(strfilepath+'/'+tfile);<br> chdir(sCurDir); //目录后退<br> NMFTP1.ChangeDir('..');<br> end<br> else<br> begin<br> NMFTP1.Upload(strfilepath+'/'+tFile,tFile)<br> end;<br> until FindNextFile(hFindFile,FindFileData)=false;<br> end<br> else<br> begin<br> ChDir(sCurDir);<br> result:=false;<br> exit;<br> end;<br> //回到原来的目录下<br> ChDir(sCurDir);<br> result:=true;<br>end;