> Hi,
>
> I am playing a little bit with directory listing, and haven't found out
> a trivial way to get directory listing sorted by directories first, then
> followed by files listing. Also - maybe dir-list could have some
> refinements, allowing to return value in a block ...
>
> Anyone?
>
> -pekr-
>
>
Hi Pekr,
Here's a function that might make it easier.
then just use
dir-block: read-dir %rebol/
foreach item dir-block [print item]
or
dir-block: read-dir/blocks %rebol/
print "Directories"
foreach each item dir-block/1 [print item]
print "Files"
foreach each item dir-block/2 [print item]
Cheers
Allen K
REBOL [
Title: "Sorted Read Directory"
Author: "Allen Kamp"
Date: 3-Oct-1999
File: %read-dir.r
Purpose: {Read a directory and returns as sorted block}
Category: [File]
Note: {There is problem with dir? on ftp url! types, so have limited
this to file! type only}
]
read-dir: func [
{Return a block of Sorted Directories and Files}
directory [file!] {Directory Path}
/blocks {Return as [[Dirs] [Files]]}
/local dirs files dir block
][
dirs: copy []
files: copy []
dir: read directory
foreach item dir [
either (dir? directory/:item) [
insert dirs item
insert files item
]
]
sort dirs
sort files
either blocks [
block: copy []
insert/only block dirs
insert/only tail block files
return block
][
return head insert files dirs
]
]