• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

使用PB调用API自动更新(非FTP模式)(四、统计复制文件数量函数F_CONNECT_COPYCOUNT)

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网
四、统计复制文件数量函数F_CONNECT_COPYCOUNT
需要控件:LISTBOX(3个)
返回值:需要下载的文件个数。
global type f_connect_copycount from function_object
end type

forward prototypes
global function integer f_connect_copycount (string as_path, listbox lb_filecopy1, listbox lb_filecopy2, listbox lb_filecopy3)
end prototypes

global function integer f_connect_copycount (string as_path, listbox lb_filecopy1, listbox lb_filecopy2, listbox lb_filecopy3);

string ls_directorya1,ls_directorya2
string ls_filename,ls_file

ls_directorya1 = as_path
ls_directorya2 = gs_application_path

string ls_directoryb1,ls_directoryb2
string ls_directoryc1,ls_directoryc2

string ls_filename1,ls_filename2

long ll_filecounta1,ll_filecounta2
long ll_filecountb1,ll_filecountb2
long ll_filecountc1,ll_filecountc2

long ll_cnt1
long ll_cnt2
long ll_cnt3

s_filetime sf_createtime1,sf_createtime2
s_filetime sf_accesstime1,sf_accesstime2
s_filetime sf_writetime1,sf_writetime2

s_WIN32_FIND_DATA ss_file1,ss_file2
long ll_filehandle1,ll_filehandle2

long ll_k

ls_file = ls_directorya1 + @#\*.*@#
If Not lb_filecopy1.DirList(ls_file, 0+1+2+16+32) Then
 Return -1
End If

ll_filecounta1 = lb_filecopy1.TotalItems()
ll_k = 0
For ll_cnt1 = 1 To ll_filecounta1
 ls_File = lb_filecopy1.Text(ll_cnt1)
 
 if left(ls_file,1) = @#[@# then
  ls_filename = right(ls_file,len(ls_file) - 1)
  ls_filename = left(ls_filename,len(ls_filename) - 1)
  
  if ls_filename = @#..@# then continue
  
  ls_directoryb1 = ls_directorya1 + @#\@# + ls_filename
  ls_directoryb2 = ls_directorya2 + @#\@# + ls_filename
  if directoryexists(ls_directoryb2) = false then
   ll_k++
  end if
  
  ls_file = ls_directoryb1 + @#\*.*@#
  lb_filecopy2.DirList(ls_file, 0+1+2+16)
  ll_filecountb1 = lb_filecopy2.TotalItems()
  for ll_cnt2 = 1 to ll_filecountb1
   ls_File = lb_filecopy2.Text(ll_cnt2)
   
   if left(ls_file,1) = @#[@# then
    ls_filename = right(ls_file,len(ls_file) - 1)
    ls_filename = left(ls_filename,len(ls_filename) - 1)
    
    if ls_filename = @#..@# then continue
    
    ls_directoryc1 = ls_directoryb1 + @#\@# + ls_filename
    ls_directoryc2 = ls_directoryb2 + @#\@# + ls_filename
    if directoryexists(ls_directoryc2) = false then
     ll_k++
    end if
    
    ls_file = ls_directoryc1 + @#\*.*@#
    lb_filecopy3.DirList(ls_file, 0+1+2+16)
    ll_filecountc1 = lb_filecopy3.TotalItems()
    for ll_cnt3 = 1 to ll_filecountc1
     ls_File = lb_filecopy3.Text(ll_cnt3)
     if ls_file = @#[..]@# then continue
     //判断文件,比较和下载
     ls_filename1 = ls_directoryc1 + @#\@# + ls_file
     ls_filename2 = ls_directoryc2 + @#\@# + ls_file
     
     if fileexists(ls_filename2) = false then
      ll_k++
     else
      ll_filehandle1 = FindFirstFileA(ls_filename1,ss_file1)
      FindClose(ll_filehandle1)
      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
    next
   else
    //判断文件,比较和下载
    ls_filename1 = ls_directoryb1 + @#\@# + ls_file
    ls_filename2 = ls_directoryb2 + @#\@# + ls_file
    if fileexists(ls_filename2) = false then
     ll_k++
    else
     ll_filehandle1 = FindFirstFileA(ls_filename1,ss_file1)
     FindClose(ll_filehandle1)
     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
  next
 else
  //判断文件,比较和下载
  ls_filename1 = ls_directorya1 + @#\@# + ls_file
  ls_filename2 = ls_directorya2 + @#\@# + ls_file
  if fileexists(ls_filename2) = false then
   ll_k++
  else
   ll_filehandle1 = FindFirstFileA(ls_filename1,ss_file1)
   FindClose(ll_filehandle1)
   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
     //下载
     choose case lower(ls_file)
      case @#hbky_autodown.exe@# //下载程序
       
      case @#hbky_autodown.pbd@#
       
      //case @#autodown.ini@#
       
      case else
       ll_k++
     end choose
    case -1
     //如lpFileTime1小于lpFileTime2,返回-1
   end choose
  end if
 end if
Next
return ll_k

end function

 

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网