1

版本输出为:

GNU CLISP 2.33 (2004-03-17) (built 2004-05-24 16:21:45)
Software: GNU C 3.3.1 (cygming special) ANSI C program
Features: (CLISP ANSI-CL COMMON-LISP LISP=CL INTERPRETER SOCKETS GENERIC-STREAMS
LOGICAL-PATHNAMES SCREEN FFI UNICODE BASE-CHAR=CHARACTER PC386 WIN32)

搜索会出现 EXT:MAKE-DIRECTORY 但在此版本上不起作用。

我知道这是一个相当旧的版本,但这是我目前所拥有的,我在尝试使用最新版本时遇到了其他问题。

我想要一些可以为完整路径创建所有目录的东西,但即使只是能够创建一个目录也会很有用。

4

3 回答 3

3

foo在当前工作目录中创建目录:

(ensure-directories-exist "foo/")

它还可以为您创建一个完整的目录结构:

(ensure-directories-exist "/tmp/lisp/rulez/")

注意,最后的斜线很重要,没有它就行不通。

另一件事是您可能没有EXT:MAKE_DIRECTORY正确使用。如果您只是将带有目录名称的字符串传递给它,那么它将不起作用。你需要像这样使用它:

 (ext:make-directory (make-pathname :directory '(:relative "foobar")))
于 2012-11-26T17:42:09.420 回答
1

CLISP 2.44 (2008-02-02)重命名EXT:MAKE-DIREXT:MAKE-DIRECTORY.

使用ENSURE-DIRECTORIES-EXISTEXT:MAKE-DIR

于 2012-11-26T20:38:19.690 回答
0

奇怪的是你没有 EXT:MAKE-DIRETORY。2004 年是“旧的”,但就 CLISP 而言,它并没有那么旧,而 EXT:MAKE-DIRECTORY 是非常基本的功能。也许出于某种奇怪的原因,这个 CLISP 是专门在没有它的情况下构建的。

另一种解决方案是调用命令行(EXT:SHELL 和朋友),但如果您没有 EXT:MAKE-DIRECTORY,也许您也不会拥有这些。另外,这将更多地依赖于平台(例如命令依赖于平台),并且集成度不高。但这是可能的(假设它们也存在)。

有没有可能升级 CLISP?

于 2012-11-26T17:42:23.837 回答