2016-12-15 117 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適合你...