Как вызвать метод GetCurrentDirectory в Clojure CLR?

Я просто немного пробую Clojure CLR, и я в тупике о том, как сделать то, что кажется, что это должно быть довольно простой работой вызова.

Версия Clojure 1.10.0-master-SNAPSHOT

В REPL я делаю так:

(import 'System.IO.FileSystem)
(FileSystem/Directory/GetCurrentDirectory)

Я получаю следующий ответ:

Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: GetCurrentDirectory in

Все, что я могу найти о Невозможно найти статическое поле: похоже, это указывает на то, что я неправильно назвал имя сборки, но, похоже, это не так.

Я также пробовал это:

(. FileSystem/Directory GetCurrentDirectory)

и я получаю

Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: Directory in System.IO.FileSystem

Также пробовал это:

(FileSystem/Directory/GetCurrentDirectory [])

И я получаю эту ошибку:

Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: GetCurrentDirectory in

Может кто-нибудь, пожалуйста, скажите мне, что я здесь не так?


person Onorio Catenacci    schedule 19.02.2021    source источник


Ответы (1)


В Core 3.1 и Net 5.0 System.IO.FileSystem не содержит GetCurrenDirectory или Directory. (Вы можете быстро проверить это, оценив ((map #(.Name %) (concat (.GetMethods System.IO.FileSystem) (.GetProperties System.IO.FileSystem)), чтобы увидеть, что доступно.)

Существует класс System.IO.Directory с методом GetCurrentDirectory. Пытаться

(System.IO.Directory/GetCurrentDirectory)

или если вы предпочитаете импортировать класс

(import 'System.IO.Directory)
(Directory/GetCurrentDirectory)
person David Miller    schedule 20.02.2021
comment
Я просмотрел документацию MS, чтобы убедиться, что все правильно понял; без сомнения, я смотрел на неправильную версию. - person Onorio Catenacci; 22.02.2021