clojure how to know the path of a folder / file / directory in one project?

后端 未结 3 1760
名媛妹妹
名媛妹妹 2021-02-13 11:53

Assume there is two files inside my clojure project, one clj and the other is txt. Is there a way to know the path (as a string) of the txt file from the clj file?

Ther

相关标签:
3条回答
  • 2021-02-13 12:23

    The Clojure library local-file allows you to get your current project's directory with local-file/project-dir. As long as you know where in your project the file you want to access is, you should be able to find it this way.

    0 讨论(0)
  • 2021-02-13 12:24

    In Java and therefore Clojure you can find files on the CLASSPATH. For example, in Java it is common to put things like log4j.properties at the top of your CLASSPATH (e.g., in the classes directory) and then you can reference the file in your Clojure (or Java) code with:

    (java.io.File. "log4j.properties")
    

    Are you using and running your app with Leiningen? If so, you can create a directory at the top level and put files there. For example, if you have a config file you can have a "conf" dir with a properties files:

    my-lein-proj$ ls
    conf  doc  project.clj  README.md  src  target  test
    

    Suppose you put a myproj.conf file in the conf directory and you want to read from it in your Clojure code. Then you can just do:

    (slurp "conf/myproj.conf")
    
    0 讨论(0)
  • 2021-02-13 12:36

    This gives where the current clj file, the one that this code is written in.

    No, it doesn't. It gives the current directory.

    Did you take into account that one can run clojure scripts that are not in the current directory?

    0 讨论(0)
提交回复
热议问题