Subject Re: Comparing Modification Date Between the same file name
From kent <gkentperalta1987@popmail.com>
Date Tue, 28 Jun 2016 23:52:17 -0400
Newsgroups dbase.getting-started

HI MRVYN,

HOW ABOUT IF IT has sub folders inside it?
or even a sub folders inside a sub folders?


Mervyn Bick Wrote:

> On 24/06/2016 09:41, kent wrote:
> > Hi ,
> >
> > is there any code for this?
> > The scenario is this :
> >
> > I have 2 different folders "FOLDER A" and "FOLDER B" ,
> > Folder A is the active Folder Database , Folder B is the back up Folder.
> > Now I want to compare (a loop) all the content of both folders base on their modification date.
> >
> > Conditions are as follows:
> >
> > A.  If a file name from The Folder A has different modification (more advance in date) date as with Folder B , system will copy the file from Folder A overwriting File to the folder B.
> > B. if a file name from Folder A has the same modification date as compared to folder B , system will do nothing.
> > C. if a file name from folder A is not present to the folder B , system will copy file to Folder B.
> >
> > is this possible?
>
> Of course. :-)
>
> The little program attached should get you started.  It has been tested
> but before you try it make sure you have a full backup elsewhere "just
> in case".
>
> It only copies sourcecode.  It does not copy data, compiled source or
> the backup files that the dBASE editor creates.  You can, of course
> change this if you want to.
>
> Adir() fills an array with details of files in a folder.   See the OLH
> for a description.  The array is arranged in rows of 5 columns.
>
> Pay special attention to the different ways the two arrays are accessed.
>   The source array is accessed row by row which is why the for...next
> loop sets the limit to aSource/5 and the values in the columns are
> [n,1],[n,3] and [n,4]
>
> scan() returns the element number in the Backup arrray not the row
> number.  To extract the date and time the values are, therefore,
> retrieved by element number eg nRow (column 1), nRow+2 (column 3) and
> nRow+3 (column 4)
>
>
> Mervyn.
>
>
>
>
> clear
> cSource = 'd:\examples\plus10\'
> cBackup = 'd:\examples\plus10\Backup\'
> set safety off
> aSource = new array()
> adir(aSource,cSource+'*.*')
> aBackup = new array()
> adir(aBackup ,cBackup+'*.*')
>
> for n = 1 to aSource.size/5
>    cSname = trim(aSource[n,1])
>    if upper(substr(cSname,len(cSname),1)) <> 'O' ;
>          and not upper(cSname) = 'BACKUP' ;
>          and not '.MDX'$upper(cSname) ;
>          and not '.DBF'$upper(cSname) ;
>          and not '.DBT'$upper(cSname)
>       cSdate = aSource[n,3]
>       cStime = aSource[n,4]
>       nRow = aBackup.scan(cSname)
>       cFromFile = cSource+cSname
>       cToFile = cBackup+cSname      
>       if nRow = 0 //Not in Backup
>          copy file '&cFromFile' to '&cToFile'
>       else  
>          cBname = aBackup[nRow]
>          cBdate = aBackup[nRow+2]
>          cBtime = aBackup[nRow+3]
>          if cSdate < cBdate
>             copy file '&cFrom' to '&cBackup'        
>          elseif cSdate = cBdate ;
>                and cStime < cBtime
>             copy file '&cFrom' to '&cBackup'
>          endif            
>       endif  
>    endif
> next
> set safety on
> ? 'Done'
>
>
>
>