Clojure Dateisystem-Portabilität

7

Ich möchte ein einfaches Programm zum Abspielen von Soundclips schreiben. Ich möchte es unter Windows, Linux und MacOSX bereitstellen. Was mich immer noch verwirrt, ist der Speicherort der Konfigurationsdatei und des Ordners mit Soundclips auf verschiedenen Betriebssystemen. Ich bin ein Clojure Noob. Ich bin mir bewusst, dass Common Lisp eine spezielle File-System Portability-Bibliothek namens CL-FAD hat. Wie wird es in Closure gemacht? Wie kann ich tragbares Clojure-Programm mit verschiedenen Konventionen für Dateisystem auf verschiedenen Systemen schreiben?

    
ruby_object 18.01.2014, 00:17
quelle

3 Antworten

21

Sie können clojure.java.io/file verwenden, um Pfade (weitgehend) plattformneutral zu erstellen, ähnlich wie Sie es mit os.path.join in Python oder File.join in Ruby tun würden.

%Vor%

clojure.java.io/file gibt eine java.io.File zurück. Wenn Sie zu einem String zurückkehren müssen, können Sie immer .getPath :

verwenden %Vor%

Haben Sie daran gedacht?

Zusätzlich zu clojure.java.io (und natürlich den Methoden auf java.io.File ), raynes.fs ist eine beliebte Dateisystembibliothek.

    
jbm 18.01.2014, 01:57
quelle
1

Beachten Sie, dass Windows den Schrägstrich als Pfadtrennzeichen perfekt unterstützt (was sehr gut ist, da Sie nicht ständig Backslashes entfernen müssen).

Das einzige Problem, auf das Sie stoßen werden, ist, dass die "Standard" -Standorte (Home-Ordner usw.) auf Windows- und UNIX-Systemen unterschiedlich sind. Sie müssen diese also von den Systemeigenschaften beziehen (siehe getProperty -Methode in Ссылка ).

    
Max Noel 19.01.2014 22:04
quelle
0

Für einen plattformunabhängigen Ansatz können Sie den kanonischen Pfad von einem Pfad relativ zum Projekt finden und ihn dann mit dem Dateinamen verbinden.

%Vor%     
nrako 17.06.2016 17:48
quelle

Tags und Links