300分求使用D5 TNMFTP上传指定目录下所有文件(包括子目录下所有文件)代码(300分)

  • 主题发起人 主题发起人 qrenj
  • 开始时间 开始时间
Q

qrenj

Unregistered / Unconfirmed
GUEST, unregistred user!
RT <br>FTP上的目录必须和本地的一致 : )
 
没有人要分数嘛 很简单的递归呀
 
读取本地的目录 递归<br>在远程FTP上建立目录<br>然后递归FTP本地的文件过去
 
都知道如何做了,还让别人做。自己多动手吧,这样才能提高自己。[:)]
 
顶是不是也给分啊!
 
兄弟们散分了 因为我比较懒啊
 
你自己已经知道怎么做了还要问这种问题?<br>非需要用别人的手喂饱自己?
 
已经找到答案了 fansofamei兄弟 有时候写程序并不是只靠自己动手 <br>知道处理问题的方法 在互联网上找到处理问题的结果 并且看懂对方的代码 修改成自己要的样子 也是一种工作能力和学习态度 <br>同样可以为你解决宝贵的时间和精力 去做更有意义的更有难度的事情 ok?<br><br>另外 何必在论坛上出言不逊 恶语相向呢 你能够不查询任何东西 就给出你的解决方案么?<br>做任何一个项目都不是只靠个人的力量就能完成的 除非你还停留在作坊开发的阶段。<br><br>稍后会贴出已经修改的解决代码 在哪之前 先听几个小时的音乐吧 [:D]
 
function TForm1.DoCopyDir(strfilepath:string): Boolean;<br>var<br> &nbsp; hFindFile:Cardinal;<br> &nbsp; t,tfile:String;<br> &nbsp; sCurDir:String[255];<br> &nbsp; FindFileData:WIN32_FIND_DATA;<br>begin<br><br> &nbsp; //先保存当前目录<br> &nbsp; sCurDir:=strfilepath;<br> &nbsp; ChDir(strfilepath);<br><br> &nbsp; hFindFile:=FindFirstFile('*.*',FindFileData);<br> &nbsp; if hFindFile&lt;&gt;INVALID_HANDLE_VALUE then<br> &nbsp; begin<br> &nbsp; &nbsp; &nbsp; &nbsp;repeat<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tfile:=FindFileData.cFileName;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (tfile='.') or (tfile='..') then<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Continue;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if FindFileData.dwFileAttributes= FILE_ATTRIBUTE_DIRECTORY then<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NMFTP1.MakeDirectory(tfile);<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NMFTP1.ChangeDir(tfile);<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DoCopyDir(strfilepath+'/'+tfile);<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;chdir(sCurDir); &nbsp; //目录后退<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NMFTP1.ChangeDir('..');<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NMFTP1.Upload(strfilepath+'/'+tFile,tFile)<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br> &nbsp; &nbsp; &nbsp; &nbsp;until FindNextFile(hFindFile,FindFileData)=false;<br> &nbsp; end<br> &nbsp; else<br> &nbsp; begin<br> &nbsp; &nbsp; &nbsp; &nbsp;ChDir(sCurDir);<br> &nbsp; &nbsp; &nbsp; &nbsp;result:=false;<br> &nbsp; &nbsp; &nbsp; &nbsp;exit;<br> &nbsp; end;<br> &nbsp; //回到原来的目录下<br> &nbsp; ChDir(sCurDir);<br> &nbsp; result:=true;<br>end;
 
使用方法:<br>procedure TForm1.Button3Click(Sender: TObject);<br>Var strfilename : String;<br>begin<br><br> &nbsp; strfilename := edit3.text;<br><br> &nbsp; NMFTP1.UserID := 'qrenj';<br> &nbsp; NMFTP1.Password := 'qrenj';<br> &nbsp; NMFTP1.Connect;<br> &nbsp; NMFTP1.Mode(MODE_BYTE);<br> &nbsp; NMFTP1.MakeDirectory(strfilename);<br> &nbsp; NMFTP1.ChangeDir(strfilename);<br> &nbsp; <br> &nbsp; DoCopyDir(Edit2.text);<br> &nbsp; <br>end;
 
后退
顶部