将目录的路径作为参数发送到clojure中的函数

时间:2014-03-25 19:43:09

标签: clojure

我需要将一个字符串作为目录的路径发送到一个函数。我在Clojure中这样做吗? 我尝试过以下但是没有工作

(defn make-asm-file [d]
  (doseq [f (.listFiles d)]
     (if 
         ( and (=(str(last (split (.getName f) #"\."))) "vm") (not (.isDirectory f))) 
         (translate f d))))

(make-asm-file "~\SimpleAdd")

1 个答案:

答案 0 :(得分:0)

以下内容,

(defn find-files
  [regexp directory]
  (filter #(and (.isFile %)
                (re-find regexp (str %)))
          (.listFiles (clojure.java.io/file directory))))

(doseq [f (find-files #".vm$" "~/SimpleAdd")]
  (translate f))

在这种情况下,(java.io.File. d)也会工作,而不是(clojure.java.io/file d)。您也可以使用file-seq而不是listfiles,但这将包括子目录中的所有* .vm文件。