View in color | License | Download script | History |
30-Apr 16:00 UTC
[0.055] 11.516k
[0.055] 11.516k
xlsr.rREBOL [
Title: "X ls -R"
Date: 30-Jul-2002
Version: 1.0.1
File: %xlsr.r
Author: "Gregory Pecheret"
Purpose: {Provide a template to exectute a function on all files found recursively from a directory}
Email: %gregory--pecheret--free--fr
library: [
level: none
platform: none
type: [Tool function]
domain: [files file-handling]
tested-under: none
support: none
license: none
see-also: none
]
]
xlsr!: make object! [
; use this field to set a filter on extension ("java", "cpp", "png", ...)
extension: none
; default methode to rewrite unless you just want to do what it does
execute: func [f [file!]] [print f]
scan-files: func [directory [file!] /local scan-result scan-elt is-dir] [
either error? try [scan-result: read directory] [
print rejoin ["problem reading directory " directory]
] [
foreach scan-elt scan-result [
is-dir: false
if error? try [
is-dir: dir? to-file rejoin[directory scan-elt]
] [
print rejoin ["problem testing " directory scan-elt]
]
either is-dir [
scan-files rejoin [directory scan-elt]
] [
if any [not extension extension = last parse/all scan-elt "."] [
execute rejoin [directory scan-elt]
]
]
]
]
]
]
{
; simple sample
xlsr!/scan-files %..
; sample to print java files
print-java: make xlsr! [
extension: "java"
execute: func [f [file!]] [print read f]
]
print-java/scan-files %.
} Notes
|