2016-12-15 113 views
3

这应该前缀给出的路径:朱莉娅 - 怪joinpath()行为

date = Date(2016, 6, 3) 
const FILEDATE_FORMAT = "YYYYmmdd" 
const FILE_PATH_FORMAT = "/YYYY/mm/" 

joinpath(
"path-prefix", 
    Dates.format(DateTime(date), FILE_PATH_FORMAT), 
    Dates.format(DateTime(date), FILEDATE_FORMAT) 
) 

预计:"/path-prefix/2016/06/20160603"

实际:"/2016/06/20160603"

这里有什么问题?

回答

5

在Linux上,/是根目录。由于您的FILE_PATH_FORMAT以字符/开头,因此joinpath正在将其解释为根目录,并且根据该函数的行为,由于路径已经是绝对的,所以在省略之前的所有内容都会被忽略。

解决方案是从FILE_PATH_FORMAT中删除前导/

顺便说一句,我需要在我的系统上使用yyyy而不是YYYY。不知道为什么YYYY适合你...