鉴于此块
fs: [
usr [
local [
bin []
]
share []
]
bin []
]
我可以使用这样的路径表示法检索项目:
fs/usr/local
当路径是字符串时,我该怎么做?
path: "/usr/local"
find fs path ;does not work!
find fs to-path path ;does not work!
鉴于此块
fs: [
usr [
local [
bin []
]
share []
]
bin []
]
我可以使用这样的路径表示法检索项目:
fs/usr/local
当路径是字符串时,我该怎么做?
path: "/usr/local"
find fs path ;does not work!
find fs to-path path ;does not work!
您需要使用正确的根完成输入字符串路径,然后 LOAD 并评估它。
>> path: "/usr/local"
>> insert path "fs"
>> do load path
== [
bin []
]
你知道 Rebol 有一个原生路径类型吗?
尽管这并不能完全回答您的问题,但我坚持我会添加有关如何直接在 Rebol 中使用路径的参考。Rebol 有很多数据类型,如果可以,您应该利用丰富的语言特性。尤其是当您开始使用和构建方言时,知道存在哪些类型以及如何使用它们变得更加有效。
这是一个关于如何直接构建和运行路径而不使用字符串的示例。为了在源代码中表示路径,您使用lit-path! 数据类型。
例子:
>> p: 'fs/usr/local
== fs/usr/local
>> do p
== [
bin []
]
你甚至可以附加到一个路径来操纵它:
>> append p 'bin
== fs/usr/local/bin
>> do p
== []
如果它存储在一个块中,则使用路径!直接输入(不是点亮路径!):
>> p: [fs/usr/local/bin]
== [fs/usr/local]
>> do first p
== [
bin []
]
另请注意,直接使用路径比使用字符串具有优势,因为路径由一系列单词组成,与使用字符串示例相比,您可以更轻松地进行一些操作:
>> head change next p 'bin
== fs/bin/local
>> p: 'fs/path/issue/is
== fs/path/issue/is
>> head replace p 'is 'was
== fs/path/issue/w
与使用字符串相反:
>> p: "fs/path/issue/is"
== "fs/path/issue/is"
>> head replace p "is" "was"
== "fs/path/wassue/is"
如果你想浏览磁盘,而不是 Rebol 数据集,你必须简单地给 'FS 一个文件的值!以及从那里浏览的路径的其余部分(这是路径在文件上的工作方式!类型):
fs: %/c/
read dirize fs/windows