clojure, wie man den Pfad eines Ordners / Datei / Verzeichnisses in einem Projekt kennt?

8

Angenommen, es gibt zwei Dateien in meinem Clojure-Projekt, ein clj und der andere ist txt. Gibt es eine Möglichkeit, den Pfad (als String) der TXT-Datei aus der CLJ-Datei zu kennen?

Es gibt:

%Vor%

oder

%Vor%

Aber das gibt wo das aktuelle Verzeichnis. Dasjenige, das die clj-Datei enthält, in die der Code geschrieben ist. Aber wie kann ich den Pfad der TXT-Datei erkennen? Der Zweck besteht darin, aus der CLJ-Datei in diese TXT-Datei zu schreiben.

Danke.

    
Mr.Queries 24.02.2013, 09:30
quelle

3 Antworten

7

In Java und daher Clojure können Sie Dateien auf dem CLASSPATH finden. Zum Beispiel ist es in Java üblich, Dinge wie log4j.properties oben in Ihrem CLASSPATH zu platzieren (z. B. im Verzeichnis classes) und Sie können dann die Datei in Ihrem Clojure (oder Java) -Code mit folgendem Code referenzieren:

%Vor%

Benutzt du deine App und betreibst sie mit Leiningen? Wenn dies der Fall ist, können Sie ein Verzeichnis auf oberster Ebene erstellen und Dateien dort ablegen. Zum Beispiel, wenn Sie eine Konfigurationsdatei haben, können Sie ein "conf" Verzeichnis mit einer Eigenschaftendatei haben:

%Vor%

Angenommen, Sie legen eine Datei myproj.conf im Verzeichnis conf ab und möchten in Ihrem Clojure-Code davon lesen. Dann können Sie einfach tun:

%Vor%     
quux00 24.02.2013, 14:13
quelle
3

Die Clojure-Bibliothek local-file ermöglicht es Ihnen, das Verzeichnis Ihres aktuellen Projekts mit local-file/project-dir zu erhalten. Solange Sie wissen, wo in Ihrem Projekt die Datei ist, auf die Sie zugreifen möchten, sollten Sie sie auf diese Weise finden können.

    
Tom 24.02.2013 20:51
quelle
1
  

Dies gibt an, wo die aktuelle clj-Datei ist, die, die dieser Code ist   geschrieben.

Nein, tut es nicht. Es gibt das aktuelle Verzeichnis.

Hast du berücksichtigt, dass man Clojure-Skripte ausführen kann, die nicht im aktuellen Verzeichnis liegen?

    
Ingo 24.02.2013 10:06
quelle