li_ret=of_getfileattributes(as_sourcefile,lb_readonly,lb_hidden,lb_system,lb_subdirectory,lb_archieve)
if li_ret=-1 then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~nFile ' + as_SourceFile +' in getfileattributes failed!'
FileWrite(ai_logfile,ls_msg)
return -2
end if
if lb_subdirectory then //find the directory
//create destination directory
if not directoryexists(as_destinationfile) then
li_ret=createdirectory(as_destinationfile)
end if
if li_ret=-1 then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~nFile ' + as_destinationfile +' in create directory failed!'
FileWrite(ai_logfile,ls_msg)
return -2
end if
//begin copy subdiretory
ls_subsourcespec=as_sourcefile+'\*.*'
li_rtn=of_dirlist(ls_subsourcespec,0+2+4+16+32,lnv_dirattrib)
if li_rtn>0 then
for lj=1 to li_rtn
if lnv_dirattrib[lj].is_filename='[..]' then continue
if lnv_dirattrib[lj].ib_subdirectory then
ls_subsourcefile=as_sourcefile+'\'+&
mid(lnv_dirattrib[lj].is_FileName,2,len(lnv_dirattrib[lj].is_FileName) -2)
ls_subdestfile=as_destinationfile+'\'+&
mid(lnv_dirattrib[lj].is_FileName,2,len(lnv_dirattrib[lj].is_FileName) -2)
else
ls_subsourcefile=as_sourcefile+'\'+lnv_dirattrib[lj].is_FileName
ls_subdestfile=as_destinationfile+'\'+lnv_dirattrib[lj].is_FileName
end if
if of_filecopytr(ls_subsourcefile,ls_subdestfile,ab_append,ai_logfile)=-1 then return -1
next
end if
else //find the file
if not FileExists(as_SourceFile) then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~nFile ' + as_SourceFile +' in INI file is not find!'
FileWrite(ai_logfile,ls_msg)
return -2
end if
if not FileExists(as_DestinationFile) or &
(DaysAfter (ld_SourceDate,ld_DestinationDate) < 0) or &
(DaysAfter (ld_SourceDate,ld_DestinationDate) = 0 and &
SecondsAfter(lt_SourceTime,lt_DestinationTime) < 0 ) then
if not isvalid(w_copy_show) then
open(w_copy_show)
end if
w_copy_show.of_SetSource(as_SourceFile)
w_copy_show.of_SetDestination(as_DestinationFile)
of_setfileattribs(as_DestinationFile,'R-')
li_ret=of_FileCopy(as_SourceFile,as_DestinationFile,false)
if li_ret = 1 then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~nCopy ' + as_SourceFile+' to '+&
as_DestinationFile + ' success!'
FileWrite(ai_logfile,ls_msg)
of_SetLastWriteDatetime(as_DestinationFile,&
ld_SourceDate,lt_SourceTime)
else
if li_ret = -1 then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~n'+as_SourceFile+' open error! '
FileWrite(ai_logfile,ls_msg)
elseif li_ret = -2 then
ls_msg = '~r~n'+string(datetime(today(),now()),'yyyy.mm.dd hh:mm:ss') + &
'~r~n'+as_DestinationFile+' write error! '
FileWrite(ai_logfile,ls_msg)
end if
end if
end if
end if