数据库

本类阅读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_COPYFILE)

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

五、复制函数F_CONNECT_COPYFILE
需要控件:LISTBOX(3个)
需要INI文件:AUTODOWN.INI
global type f_connect_copyfile from function_object
end type

forward prototypes
global function integer f_connect_copyfile (string as_path, hprogressbar hpb_1, long al_copycount, listbox lb_filecopy1, listbox lb_filecopy2, listbox lb_filecopy3)
end prototypes

global function integer f_connect_copyfile (string as_path, hprogressbar hpb_1, long al_copycount, listbox lb_filecopy1, listbox lb_filecopy2, listbox lb_filecopy3);
string ls_user
string ls_pass
string ls_directorya1,ls_directorya2
string ls_directoryb1,ls_directoryb2
string ls_directoryc1,ls_directoryc2

ls_directorya1 = as_path
ls_directorya2 = gs_application_path

string ls_filename,ls_file
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
long ll_m
long ll_ret = 1

s_WIN32_FIND_DATA ss_file1,ss_file2
long ll_filehandle1,ll_filehandle2


ls_file = ls_directorya1 + '\*.*'
If Not lb_filecopy1.DirList(ls_file, 0+1+2+16) Then
 Return 0
End If
hpb_1.position = 0
ll_filecounta1 = lb_filecopy1.TotalItems()
ll_m = 0
if al_copycount = 0 then al_copycount = 1
For ll_cnt1 = 1 To ll_filecounta1
 ls_File = lb_filecopy1.Text(ll_cnt1)
 w_autodown_test.st_2.text = ls_file
 Yield()
 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
   CreateDirectory(ls_directoryb2)
   ll_m++
   hpb_1.position = ll_m / al_copycount * 100
  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)
   w_autodown_test.st_2.text = ls_file
   Yield()
   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
     CreateDirectory(ls_directoryc2)
     ll_m++
     hpb_1.position = ll_m / al_copycount * 100
    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)
     w_autodown_test.st_2.text = ls_file
     if ls_file = '[..]' then continue
     //判断文件,比较和下载
     ls_filename1 = ls_directoryc1 + '\' + ls_file
     ls_filename2 = ls_directoryc2 + '\' + ls_file
     Yield()
     if fileexists(ls_filename2) = false then
      CopyFileA(ls_filename1,ls_filename2,0)
      ll_m++
      hpb_1.position = ll_m / al_copycount * 100
     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
        //下载
        CopyFileA(ls_filename1,ls_filename2,0)
        ll_m++
        hpb_1.position = ll_m / al_copycount * 100
       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
     CopyFileA(ls_filename1,ls_filename2,0)
     ll_m++
     hpb_1.position = ll_m / al_copycount * 100
    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
       //下载
       CopyFileA(ls_filename1,ls_filename2,0)
       ll_m++
       hpb_1.position = ll_m / al_copycount * 100
      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
   CopyFileA(ls_filename1,ls_filename2,0)
   ll_m++
   hpb_1.position = ll_m / al_copycount * 100
  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' //下载程序
       //filedelete(ls_filename2)
       
      case 'hbky_autodown.pbd'
       
      //case 'autodown.ini'
       
      case else
       CopyFileA(ls_filename1,ls_filename2,0)
       ll_m++
       hpb_1.position = ll_m / al_copycount * 100
     end choose
    case -1
     //如lpFileTime1小于lpFileTime2,返回-1
   end choose
  end if
 end if
Next
hpb_1.position = 0
return ll_ret
end function

 




相关文章

相关软件