考虑以下几点:
(directory (make-pathname :directory '(:absolute "Users" "gazonk" "foo" "*")
:name :wild))
这会中断,因为其中一个目录包含字符“;”。
如果删除上面的“*”,代码将返回一个目录列表,其中“;”被逃脱了。
似乎我不能让它继续往下走,因为有些目录包含“;”
有解决办法吗?
感谢任何和所有的表扬。谢谢。
最佳答案
确认。我在 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 channel 上提问或提交错误报告 here (需要注册)。
关于lisp - CCL 突破文件/目录名称中的非法字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17640466/