我想写一个简单的程序来播放声音片段.我想在Windows,Linux和MacOSX上部署它.仍然困扰我的是配置文件的位置和在不同操作系统上具有声音剪辑的文件夹.我是一个Clojure noob.我知道Common Lisp有一个名为CL-FAD的特殊文件系统可移植库.如何在Closure中完成?如何在不同的系统上编写具有不同文件系统约定的可移植Clojure程序?
jbm*_*jbm 25
您可以使用clojure.java.io/file(主要)与平台无关的方式构建路径,类似于os.path.join在Python或File.joinRuby中的方式.
(require '[clojure.java.io :as io])
;; On Linux
(def home "/home/jbm")
(io/file home "media" "music") ;=> #<File /home/jbm/media/music>
;; On Windows
(def home "c:\\home\\jbm")
(io/file home "media" "music") ;=> #<File c:\home\jbm\media\music>
Run Code Online (Sandbox Code Playgroud)
clojure.java.io/file返回一个java.io.File.如果你需要回到一个字符串,你可以随时使用.getPath:
(-> home
(io/file "media" "music")
(.getPath))
;=> /home/jbm/media/music"
Run Code Online (Sandbox Code Playgroud)
那是你想到的那种事吗?
除了clojure.java.io(当然还有方法java.io.File),它raynes.fs是一个流行的文件系统实用程序库.