idftp在连续上传文件过程中,创建目录时出错,请问什么原因?
用idftp上传文件,是从一个本地目录中通过遍历的方式,把一个目录下所有文件都上上传上去,但是在连续上传过程中,总是在传了128个文件后就在创建目录的地方出错,提示目录已经存在。下面是代码
- Delphi(Pascal) code
UpLoadFtp.ChangeDir('/'); UpLoadFtp.List(dir_List,'',True); DirStringList:=SplitString(ftpDirectStr,'/'); for i:=0 to DirStringList.Count-1 do begin if(DirStringList[i]<>'') then begin if(dir_List.IndexOf(DirStringList[i])=-1) then begin try UploadFTP.MakeDir(DirStringList[i]); except on ex:Exception do writeLog('添加目录出错:目录名:' + DirStringList[i] + ';出错原因:' + ex.Message); end; end; try UpLoadFtp.ChangeDir(DirStringList[i]); except on ex:Exception do writeLog('变更目录出错:' + ex.Message); end; end; end; UpLoadFtp.put(localPath,saveFileName,false); Sleep(1000); UpLoadFileState:=True;声明一下:这个程序只是个临时性的工具,所以没有把上传处理做成另一个线程,都在界面的部分一并处理了。有些变量在前面部分已经赋值了,不要在这上面纠缠了,另外,采用的主动模式。所以现在我的怀疑有两个:一个是因为主动模式,造成有时候和服务器断开;二就是128这个数字很奇特,而且也观察了一下,传输128个文件,把这128个文件信息往数据库中写,几乎不花时间就写进去了,所以怀疑FTP等待队列是不是有长度限制。
有这方面经验的人谈谈看法。
[解决办法]
根据ex.Message得到原因