handle errors when traversing directories
parent
c3c51e2c60
commit
0220609928
|
@ -24,7 +24,7 @@ IN: io.directories.search
|
||||||
TUPLE: directory-iterator path bfs queue ;
|
TUPLE: directory-iterator path bfs queue ;
|
||||||
|
|
||||||
: push-directory-entries ( path iter -- )
|
: push-directory-entries ( path iter -- )
|
||||||
[ qualified-directory-entries ] dip '[
|
[ [ qualified-directory-entries ] [ 2drop f ] recover ] dip '[
|
||||||
_ [ queue>> ] [ bfs>> ] bi
|
_ [ queue>> ] [ bfs>> ] bi
|
||||||
[ push-front ] [ push-back ] if
|
[ push-front ] [ push-back ] if
|
||||||
] each ;
|
] each ;
|
||||||
|
@ -70,16 +70,12 @@ PRIVATE>
|
||||||
[ ] accumulator [ each-directory-entry ] dip ;
|
[ ] accumulator [ each-directory-entry ] dip ;
|
||||||
|
|
||||||
: find-file ( path bfs? quot -- path/f )
|
: find-file ( path bfs? quot -- path/f )
|
||||||
'[
|
[ <directory-iterator> ] dip
|
||||||
_ _ _ [ <directory-iterator> ] dip
|
[ keep and ] curry iterate-directory ;
|
||||||
[ keep and ] curry iterate-directory
|
|
||||||
] [ drop f ] recover ;
|
|
||||||
|
|
||||||
: find-all-files ( path quot -- paths/f )
|
: find-all-files ( path quot -- paths/f )
|
||||||
'[
|
[ f <directory-iterator> ] dip pusher
|
||||||
_ _ [ f <directory-iterator> ] dip
|
[ [ f ] compose iterate-directory drop ] dip ;
|
||||||
pusher [ [ f ] compose iterate-directory drop ] dip
|
|
||||||
] [ drop f ] recover ;
|
|
||||||
|
|
||||||
ERROR: file-not-found path bfs? quot ;
|
ERROR: file-not-found path bfs? quot ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue