在lisp中将字符串写入文件

时间:2012-04-18 23:41:05

标签: file-io lisp common-lisp

我运行了一些这样的代码

(defun writeFile (name content)
    (with-open-file (stream name
        :direction :output
        :if-exists :overwrite
        :if-does-not-exist :create)
    (format stream content)))
(writeFile "C:\Users\Peter\test.txt" "Test...")

然后我检查了我的C:\Users\Peter目录,它不包含创建名为test.txt的文件。我做错了什么?

1 个答案:

答案 0 :(得分:4)

\是Common Lisp中字符串中的转义字符。

(length "\\")1

(length "\U")1

"\U""U"

"C:\Users\Peter\test.txt""C:UsersPetertest.txt"

所以你正在编写一个名为"C:UsersPetertest.txt"的文件。

三种可能的解决方案:

  • 使用反斜杠转义反斜杠
  • 我不确定这是否有效:使用正斜杠
  • 使用其中一个PATHNAME函数构造路径名

高级:使用逻辑路径名