2017-05-26 64 views
1

cloobure的總noob - 當我嘗試讀取與.clj文件位於同一文件夾中的文件時,使用slurp不起作用,除非我放入完整的絕對路徑。clojure slurp需要絕對路徑

E.G.如果我有stuff/file.clj和stuff/words.txt,(slurp「words.txt」)找不到該文件。如果我把整個路徑,它的作品。根據閱讀其他人的代碼和文檔,情況不應該如此。

我只是運行此腳本一次性的,而無需創建任何類型的文件夾/謨結構,這將是一個典型的Clojure的應用程序,所以不知道這會導致任何路徑問題

回答

3

slurp採用相對路徑當前工作目錄,而不是它所在的clojure文件。在Clojure項目中,這通常是項目根目錄(即project.clj所在的地方)。但既然你說你只是在沒有項目的情況下運行獨立的Clojure文件,它應該是你的shell的工作目錄。

+0

嗯...必須是sublimerepl從clojure居住的地方執行,而不是當前的工作目錄。我用來構建路徑感知的命令,以便如果在目錄中創建文件,shell會用該路徑調用解釋器。 – Solaxun

+0

聽起來像是與使用sublimerepl有關的問題。通過運行'(System/getProperty「user.dir」)''你可以找出JVM認爲工作目錄是什麼。 – amalloy

+0

是... ....默認爲崇高的位置,需要弄清楚如何將其設置爲活動目錄。謝謝。 – Solaxun