[EMAIL PROTECTED] wrote:
> Hi, I'm need an HTML listing of all files in a given directory tree (not
> necessarily starting at the root level).
>
> Here's some preliminary code I've written so far while I've been doing other
> work:
>
> starting_directory: %/c/
>
> filelist: []
>
> getlistoffiles: func [dir][
> dirlist: read dir
> foreach item dirlist [
> either not dir? item [
> append filelist rejoin [dir item]
> ][
> getlistoffiles item
be carefull with recursions ... your 'dirlist word's gonna be "global" for all
your "getlistoffiles item" calls. Try:
getlistoffiles: func [dir][dirlist][
dirlist ......
which will define 'dirlist as a local word to your function ....
>
> ]
> ]
> ]
>
> getlistoffiles starting_directory
>
> print ["<html><head><title>Every file in " starting_directory
> "</title></head><body>"]
>
> foreach file filelist [
> print rejoin ["<a href=^"file://" file "^">" file "</a>"]
> ]
>
> print "</body></html>"
>
> ---------------------------
>
> Once it's working I'm going to write the whole thing I'm just printing to
> the console now to a file of course.
>
> Seems like it should be really simple, but I'm running into some problems.
> For some reason it isn't "recursing" and getting the subdirectories, and
> even though I have the "dir?" test in there it's still putting directories
> in 'filelist. Also, since I'm on Windows, the "file" that I get from the
> foreach at the bottom isn't good enough to put as an HTML link since it
> doesn't have the colon in it. i.e. It looks like "file:///c/blahblah"
> rather than "file:///c:/blahblah"
>
Is it a problem? Well, you need to skip first three chars from your file (skip
file 3) and insert the colon then :-):
foreach file filelist [
print rejoin ["<a href=^"file://" head insert skip file 2 ":" "^">" file
"</a>"]
]
HopeThisHelps :-)
Cheers,
-pekr-
>
> If anyone could lend any assistance I'd be grateful. And of course if
> someone's already written a script to do exactly this, if anyone could point
> me to it it'd be great. Thanks!
>
> Keith