View in color | License | Download script | History | Other scripts by: nicolasv |
4-Oct 1:42 UTC
[0.056] 10.966k
[0.056] 10.966k
diff-directories.rREBOL [
title: "Diff directorie"
file: %diff-directories.r
date: 03/12/2010
author: "nicolas"
purpose: {
Give a directory in parameter,
=> first launch return a block with the content of the directory
=> next launch, compare content of the directory with save data in a file named old-lst.txt and return new files and file that has changed
}
]
diff-directories: func [dir [file!] /date /full /local new-lst old-lst file diff diff-lst] [
diff-lst: []
new-lst: read dir
forall new-lst [new-lst: back insert next new-lst get-modes dir/(new-lst/1) 'modification-date]
old-lst: any [all [exists? fic: %old-lst.txt load fic] make block! 20]
save %old-lst.txt new-lst
if 0 < length? old-lst [
if any [date full] [
forskip new-lst 2 [
file: pick new-lst 1
new-date: select new-lst file
old-date: select old-lst file
if any [not new-date not old-date 0:00 < diff: difference new-date old-date][append diff-lst file]
]
]
]
if not date [
new-lst: extract new-lst 2
either 0 < length? old-lst [
old-lst: extract old-lst 2
diff: difference new-lst old-lst
append diff-lst diff
][append diff-lst new-lst]
]
return copy diff-lst
] |