2024 Clojure现状调查中分享您的想法![点击参与调查]

欢迎!请参阅关于页面了解有关如何工作的更多信息。

+1 推荐票
ClojureCLR
重分类

ClojureCLR版本的io/as-file返回一个FileInfo对象,它只能表示文件(而不是目录,因为目录由DirectoryInfo类表示)。另一方面,JVM CLojure返回一个File对象,它可以表示两者。这导致了评估结果的不同

Clojure

user=> (require '[clojure.java.io :as io])
nil
user=> (.exists (io/as-file "/"))
true

ClojureCLR

user=> (require '[clojure.clr.io :as io])
nil
user=> (.Exists (io/as-file "/"))
false

建议的修复方法是返回一个FileSystemInfo对象,它是FileInfoDirectoryInfo的父类,因此能够表示两者,类似于Java的File类。

1 个回答

0 推荐票




...