数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用PB调用API自动更新(非FTP模式)(四、统计复制文件数量函数F_CONNECT_COPYCOUNT)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

四、统计复制文件数量函数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

 




相关文章

相关软件