我无法使用绝对路径重命名文件:
我玩过很多次搜索SO和其他网站但没有找到答案。
我有一个文件" / home / john / test / foo"。
在REPL中:
(use '[clojure.java.io])
nil
user=> (defn re-name
#_=> "Rename a file"
#_=> [old-path new-path]
#_=> (.renameTo (file old-path) (file new-path)))
#'user/re-name
user=> (re-name "foo" "bar")
true
user=> (re-name "bar" "foo")
true
user=> (re-name "/home/john/test/foo" "home/john/test/bar")
false
user=> (re-name "foo" "bar")
true
我想知道我错过了什么显而易见的事情......
答案 0 :(得分:3)
你遗漏的显而易见的事情:-)是你正在重命名相对路径的绝对路径:
(re-name "/home/john/test/foo" "home/john/test/bar")
可能会失败,因为相对目录"home/john/test"
不存在。
要了解程序的运行位置,您可以执行以下操作:
(System/getProperty "user.dir")
修复重命名:
(re-name "/home/john/test/foo" "/home/john/test/bar")