在erlang中,我有一个目录/proj/htdocs/root/jpT/elqstux/16-04-12/ct_run.ct_sim@esekilvxen263.2016-04-12_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/ct_run.ct_sim@esekilvxen263.2016-04-12_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()
,但我没有成功。
所以,我想知道是否有这种方法用于此目的?
答案 0 :(得分:1)
由于您的输入路径以/
结尾,您需要拨打filename:dirname/1
两次(或者您可以自行删除它并拨打filename:dirname/1
一次):
1> Path = "/proj/htdocs/root/jpT/elqstux/16-04-12/ct_run.ct_sim@esekilvxen263.2016-04-12_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/ct_run.ct_sim@esekilvxen263.2016-04-12_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/ct_run.ct_sim@esekilvxen263.2016-04-12_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/ct_run.ct_sim@esekilvxen263.2016-04-12_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/ct_run.ct_sim@esekilvxen263.2016-04-12_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