1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function parcours ( path, callback /*, thisArg */ ) {
// ctrl arg path
if ( typeof callback != "function" )
throw new TypeError("parcours : 'callback' is not a function");
var thisArg = arguments.length > 2 ? arguments[2] : undefined;
var stack = [path], sp = stack.length;
// avant tout traitement
callback.call(thisArg, ...);
while ( sp ) {
path = stack[--sp];
// avant traitement du répertoire
callback.call(thisArg, ...);
for( liste des fichiers ) {
if ( répertoire )
stack[sp++] = path/répertoire;
else
faire des choses
}
// après traitement du répertoire
callback.call(thisArg, ...);
}
// après traitement complet
callback.call(thisArg, ...);
} |
Partager