clojure如何知道一个项目中文件夹/文件/目录的路径?

clojure如何知道一个项目中文件夹/文件/目录的路径?,clojure,functional-programming,Clojure,Functional Programming,假设我的clojure项目中有两个文件,一个是clj,另一个是txt。 有没有办法从clj文件中知道txt文件的路径(作为字符串) 有: (System/getProperty "user.dir") 或 但这给出了当前目录的位置。包含clj文件的文件,即编写代码的文件。 但是如何知道txt文件的路径呢? 目的是从clj文件写入此txt文件 多谢各位 这给出了当前clj文件所在的位置,即该代码所在的位置 写在 不,没有。 它给出了当前目录 您是否考虑到可以运行不在当前目录中的clojure脚

假设我的clojure项目中有两个文件,一个是clj,另一个是txt。 有没有办法从clj文件中知道txt文件的路径(作为字符串)

有:

(System/getProperty "user.dir") 

但这给出了当前目录的位置。包含clj文件的文件,即编写代码的文件。 但是如何知道txt文件的路径呢? 目的是从clj文件写入此txt文件

多谢各位

这给出了当前clj文件所在的位置,即该代码所在的位置 写在

不,没有。 它给出了当前目录


您是否考虑到可以运行不在当前目录中的clojure脚本?

在Java中,因此clojure可以在类路径上找到文件。例如,在Java中,通常会将log4j.properties之类的内容放在类路径的顶部(例如,在classes目录中),然后您可以使用以下内容引用Clojure(或Java)代码中的文件:

(java.io.File. "log4j.properties")
您是否正在与Leiningen一起使用和运行应用程序?如果是这样,您可以在顶层创建一个目录并将文件放在那里。例如,如果您有一个配置文件,您可以有一个带有属性文件的“conf”目录:

my-lein-proj$ ls
conf  doc  project.clj  README.md  src  target  test
假设您将一个myproj.conf文件放在conf目录中,并希望在Clojure代码中读取该文件。然后你可以做:

(slurp "conf/myproj.conf")

Clojure库允许您使用
本地文件/project dir
获取当前项目的目录。只要您知道要访问的文件在项目中的位置,就应该能够通过这种方式找到它。

如果您的文件结构与此类似:

配置| src |目标|测试

您在config目录中有一个config,在我们的例子中,假设它是java.config,您试图在src目录中的core.clj中读取该文件,您也可以使用clojure.java.io/reader方法

例如:

(clojure.java.io/reader "config/java.config")
您可以在repl中运行以下命令以查看文件的内容

(slurp (clojure.java.io/reader "config/java.config")
如果您对逐行读取文件内容感兴趣,请将上述功能与open方法相结合,逐行读取:

(with-open [word (clojure.java.io/reader "config/java.config")]
  (loop [c (.read word)]
    (if (not= c -1)
      (do
        (print (char c))
        (recur (.read word))))))

您好,您是对的,但是如何知道项目文件夹中空txt文件的路径,或者如何在项目文件夹中创建新的txt文件。在任何一种情况下,都需要以字符串形式显示该txt文件的路径。所有这些都需要是clojure文件中的代码。如果您不需要项目,而只需要clojure文件,请安装最新的clojure 1.9,其中包含clj实用程序,并按照说明进行操作:您好,可以演示吗?需要的只是项目目录中txt文件的字符串路径。(使用此路径是从clj文件写入此txt文件)。谢谢。嗨,我没有使用Leiningen,只是使用clojure项目。需要的只是项目目录中txt文件的字符串路径。(使用此路径是从clj文件写入此txt文件)。谢谢。
(with-open [word (clojure.java.io/reader "config/java.config")]
  (loop [c (.read word)]
    (if (not= c -1)
      (do
        (print (char c))
        (recur (.read word))))))