0

我只是在尝试一下 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

有人可以告诉我我在这里做错了什么吗?

4

1 回答 1

2

在 Core 3.1 和 Net 5.0 下,System.IO.FileSystem不包含GetCurrenDirectoryor 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)
于 2021-02-20T14:39:49.490 回答