1

CLISP でディレクトリ内のすべてのファイルのリストを取得しようとしましたが、ディレクトリ内のすべての非ディレクトリ ファイルしか取得できませんでした。

現在、Windows 7 で cygwin を使用してこれを試しているため、結果に影響する可能性があります。私はCLISP(およびLISP全体)にかなり慣れていませんが、現在やろうとしていることは次のとおりです。

(directory (make-pathname :directory
'(:absolute "cygdrive" "c" "Download")
:name :wild))

これにより、「C:\Download」内のすべての非ディレクトリ ファイルが正常に返されます。ただし、ディレクトリは返されません。すべてを検索しましたが、すべての Common Lisp リファレンスは「ディレクトリ」の使用を指していますが、それは不可能に思えます。ディレクトリ内のすべてのファイルをアドレス指定する Common Lisp (またはおそらく CLISP のみ?) の方法はありません。

どんな助けでも大歓迎です。前もって感謝します!

4

2 に答える 2

5

CLISP 実装ノートのセクション 20.3.2を参照してください。

「現在のディレクトリ内のすべてのファイルとサブディレクトリが必要な場合は、を使用する必要があります(NCONC (DIRECTORY "*/") (DIRECTORY "*"))。」

于 2011-03-12T11:50:20.030 に答える
2

Common Lispでは、おそらく不幸な決定であることが判明しましたが、ディレクトリはファイルではありません。したがって、例でディレクトリのリストを取得するには、ディレクトリフラグメントにワイルドカードが必要です。

(directory
 (make-pathname :directory
                '(:absolute "cygdrive" "c" "Download" :wild)))
于 2011-03-12T11:56:01.497 に答える