1

私はこのようないくつかのコードを実行しました

(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. 私は何を間違っていますか?

4

1 に答える 1

5

\CommonLispの文字列のエスケープ文字です。

(length "\\")です1

(length "\U")です1

"\U"です"U"

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

つまり、。というファイルを作成していることになります"C:UsersPetertest.txt"

3つの可能な解決策:

  • バックスラッシュでバックスラッシュをエスケープする
  • それが機能するかどうかはわかりません。スラッシュを使用してください
  • PATHNAME関数の1つを使用して、パス名を作成します

詳細:論理パス名を使用する

于 2012-04-18T23:48:25.763 に答える