< Rebol Programming
USAGE:
CHANGE-DIR dir
DESCRIPTION:
Changes the active directory path.
CHANGE-DIR is a function value.
ARGUMENTS
- dir -- new directory path (Type: file)
(SPECIAL ATTRIBUTES)
- catch
SOURCE CODE
change-dir: func [
"Changes the active directory path."
[catch]
dir [file!] "new directory path"
/local slash full ret
][
dir: clean-path dir
if (last dir) <> #"/" [append dir #"/"]
if (first dir) = #"/" [
slash: next dir
full: remove parse system/script/path "/"
while [all [not empty? slash (first slash) = #"/" not empty? full]] [
insert slash first full
remove full
slash: find/tail slash "/"
if (empty? full) or (empty? slash) [clear slash break]
]
]
either throw-on-error [dir? dir] [
system/script/path: dir
] [
throw make error! reduce ['access 'cannot-open dir]
]
system/script/path
]
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.