2012-04-18 46 views
0

我跑這樣寫入字符串文件中口齒不清

(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

試試這個:'(WriteFile的「C:\\ \\用戶\\彼得測試。 txt「」Test ...「)' – JJJ 2012-04-18 23:49:32

+0

另外,奇怪的是,你沒有得到類似於'路徑#P」C:UsersPetertest.txt「不存在」的東西。 – JJJ 2012-04-18 23:51:53

+0

@htbta'C:\ Users \ Matthias> copy con c:UsersPetertest.txt','Hi.','^ Z' =>'複製了1個文件.' – 2012-04-19 17:45:37

回答

4

\是Common Lisp字符串中的轉義字符。

(length "\\")1

(length "\U")1

"\U""U"

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

因此,您正在編寫一個名爲"C:UsersPetertest.txt"的文件。

三種可能的解決方案:

  • 使用反斜線
  • 反斜線我不知道是否可行:使用正斜槓
  • 使用的路徑名的功能之一來構建路徑

高級:使用邏輯路徑