CCL打破文件/目录名中的非法字符?

时间:2013-07-14 14:52:15

标签: lisp common-lisp ccl

请考虑以下事项:

(directory (make-pathname :directory '(:absolute "Users" "gazonk" "foo" "*")
                          :name :wild))

这会中断,因为其中一个目录包含字符“;”。

如果删除上面的“*”,代码将返回一个目录列表,其中“;”被逃脱了。

似乎我无法进一步向下,因为某些目录包含“;”

这是否有解决方法?

任何和所有的赞扬都表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

确认。我在Mac OS X 10.8上看到了与ccl 1.9(64位或32位)相同的行为。

我使用mkdir'a; b'创建了一个空子目录,我看到了:

(make-pathname :directory '(:absolute "Users" "gazonk" "foo" "*") :name :wild))
> Error: Illegal directory string "/Users/gazonk/foo/a;b/"
> While executing: CCL::%DIRECTORY-STRING-LIST, in process listener(1).

<强>更新

基于Rainer的评论,听起来这可能是一个ccl错误。

建议询问#ccl irc频道或提交错误报告here(需要注册)。