gpt4 book ai didi

Clojure文件系统的可移植性

转载 作者:行者123 更新时间:2023-12-04 04:50:01 25 4
gpt4 key购买 nike

我想编写一个播放声音片段的简单程序。我想将其部署在Windows,Linux和MacOSX上。仍然令我困惑的是配置文件和带有声音剪辑的文件夹在不同操作系统上的位置。我是Clojure新手。我知道Common Lisp具有特殊的文件系统可移植性库,称为CL-FAD。关闭过程如何进行?如何在不同的系统上编写具有不同文件系统约定的可移植Clojure程序?

最佳答案

您可以使用clojure.java.io/file以(大多数)与平台无关的方式构建路径,类似于在Python中使用os.path.join或在Ruby中使用File.join的方式。

(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>
clojure.java.io/file返回 java.io.File 。如果您需要返回字符串,则可以始终使用 .getPath:
(-> home
(io/file "media" "music")
(.getPath))
;=> /home/jbm/media/music"

这是您想到的吗?

除了 clojure.java.io (当然还有 java.io.File上的方法)之外, raynes.fs 是一个流行的文件系统实用程序库。

关于Clojure文件系统的可移植性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com