2016-04-12 186 views
0

在erlang中,我有一个目录/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/log_private/,如何获取erlang中给定目录的父目录名称?

我想获得此目录的父目录名称。在这种情况下 ,预期结果是/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/

但我尽量dirname(Filename) -> file:filename_all(),但我没有successed。

所以,我想知道有没有为这个目的,这种方法吗?

回答

1

随着你的输入路径与/结束,你需要调用filename:dirname/1两次(或者你可以自己将其删除,并呼吁filename:dirname/1一次):

1> Path = "/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/log_private/". 
"/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/log_private/" 
2> Expected = "/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/". 
"/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12/" 
3> filename:dirname(filename:dirname(Path)). 
"/proj/htdocs/root/jpT/elqstux/16-04-12/[email protected]_09.27.06/auto.suite.sbg_ft_esrvcc_midcall_SUITE.groups.esrvcc_midcall_media_stop_002.logs/run.2016-04-12_09.27.12" 

你的预期路径还包括尾随/,这样你就可以手动附加为filename:dirname不包括它:

4> filename:dirname(filename:dirname(Path)) ++ "/" == Expected. 
true 
相关问题