long ll_hret long ll_hftp1 long ll_hftp2 long ll_fftp1 long ll_fftp2 integer li_ret long ll_filehandle1,ll_filehandle2 long ll_k
boolean lb_success
s_win32_find_data ss_file1,ss_file2
li_ret = f_connect_ftpserver() if li_ret = -1 then return -1
ll_hret = internetopena(gs_application_name,0,'','',0) choose case li_ret case 1 ls_directorya1 = gs_ftpdir1 ll_hftp1 = internetconnecta(ll_hret,gs_ftpserver1,gl_ftploginport1,gs_ftploginuser1,gs_ftploginpass1,1,0,0) case 2 ls_directorya1 = gs_ftpdir2 ll_hftp1 = internetconnecta(ll_hret,gs_ftpserver2,gl_ftploginport2,gs_ftploginuser2,gs_ftploginpass2,1,0,0) case 3 ls_directorya1 = gs_ftpdir3 ll_hftp1 = internetconnecta(ll_hret,gs_ftpserver3,gl_ftploginport3,gs_ftploginuser3,gs_ftploginpass3,1,0,0) case else internetclosehandle(ll_hret); return -1 end choose lb_success = ftpsetcurrentdirectorya(ll_hftp1,ls_directorya1) if not lb_success then internetclosehandle(ll_hret); internetclosehandle(ll_hftp1); return -1 end if ll_fftp1 = ftpfindfirstfilea(ll_hftp1,'',ss_file1,0,0) if ll_fftp1 = 0 then internetclosehandle(ll_hret); internetclosehandle(ll_hftp1); internetclosehandle(ll_fftp1); return 0 end if ll_k = 0 if ss_file1.dwfileattributes = 16 then ls_directoryb1 = ls_directorya1 + '/' + ss_file1.cfilename ls_directoryb2 = ls_directorya2 + '/' + ss_file1.cfilename if directoryexists(ls_directoryb2) = false then ll_k++ end if choose case li_ret case 1 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver1,gl_ftploginport1,gs_ftploginuser1,gs_ftploginpass1,1,0,0) case 2 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver2,gl_ftploginport2,gs_ftploginuser2,gs_ftploginpass2,1,0,0) case 3 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver3,gl_ftploginport3,gs_ftploginuser3,gs_ftploginpass3,1,0,0) end choose lb_success = ftpsetcurrentdirectorya(ll_hftp2,ls_directoryb1) if lb_success then ll_fftp2 = ftpfindfirstfilea(ll_hftp2,'',ss_file1,0,0) ls_filename2 = ls_directoryb2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if do while internetfindnextfilea(ll_fftp2, ss_file1) yield() ls_filename2 = ls_directoryb2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if loop internetclosehandle(ll_hftp2); internetclosehandle(ll_fftp2); end if else ls_filename2 = ls_directorya2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if end if do while internetfindnextfilea(ll_fftp1, ss_file1) yield() if ss_file1.dwfileattributes = 16 then ls_directoryb1 = ls_directorya1 + '/' + ss_file1.cfilename ls_directoryb2 = ls_directorya2 + '/' + ss_file1.cfilename if directoryexists(ls_directoryb2) = false then ll_k++ end if choose case li_ret case 1 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver1,gl_ftploginport1,gs_ftploginuser1,gs_ftploginpass1,1,0,0) case 2 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver2,gl_ftploginport2,gs_ftploginuser2,gs_ftploginpass2,1,0,0) case 3 ll_hftp2 = internetconnecta(ll_hret,gs_ftpserver3,gl_ftploginport3,gs_ftploginuser3,gs_ftploginpass3,1,0,0) end choose lb_success = ftpsetcurrentdirectorya(ll_hftp2,ls_directoryb1) if lb_success then ll_fftp2 = ftpfindfirstfilea(ll_hftp2,'',ss_file1,0,0) ls_filename2 = ls_directoryb2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if do while internetfindnextfilea(ll_fftp2, ss_file1) yield() ls_filename2 = ls_directoryb2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if loop internetclosehandle(ll_hftp2); internetclosehandle(ll_fftp2); end if else ls_filename2 = ls_directorya2 + '/' + ss_file1.cfilename if fileexists(ls_filename2) = false then ll_k++ else ll_filehandle2 = findfirstfilea(ls_filename2,ss_file2) findclose(ll_filehandle2) choose case comparefiletime(ss_file1.ftlastwritetime,ss_file2.ftlastwritetime) case 0 //两个时间相等,就返回零 case 1 //如lpfiletime2小于lpfiletime1,返回1 //下载 ll_k++ case -1 //如lpfiletime1小于lpfiletime2,返回-1 end choose end if end if loop internetclosehandle(ll_hret); internetclosehandle(ll_hftp1); internetclosehandle(ll_fftp1); return ll_k