2010-07-04 56 views
3

我試圖通過執行Java命令從Clojure中的文件獲取上次修改的時間。 通過使用java.io.File.lastModified我應該能夠獲得UNIX時間,這不會通過執行腳本或在REPL中工作。Java命令lastModified()在Clojure中不工作

我的代碼是: (java.io.File.lastModified 「/home/lol/lolness.txt」)

,我的錯誤是: 拋出java.lang.ClassNotFoundException:java.io.File中。 lastModified(NO_SOURCE_FILE:24)

(java.io.File.separator)工作,但是。

編輯: Clojure的版本1.2.0主-SNAPSHOT Java版本的OpenJDK 1.6.0

回答

7

lastModifiedjava.io.File對象的方法。訪問它Clojure中,使用以下語法:

(.lastModified (java.io.File. "/home/lol/lolness.txt")) 

注意,命名空間clojure.contrib.java-utils(1.1)/ clojure.java.io(前沿)提供一個函數file這使得java.io.File對象的創建更方便。由於您處於最前沿,以下內容應該適用於您:

(require '[clojure.java.io :as io]) 
(.lastModified (io/file "/home/lol/lolness.txt"))