gpt4 book ai didi

emacs - 在 Elisp 中,如何正确插入带有斜杠的路径字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:07 26 4
gpt4 key购买 nike

我通过连接部分路径和目录名称在 Elisp 中手动构建路径字符串。不幸的是,有时路径以斜线结尾,有时不是。因此,我需要在必要时在连接目录名称之前插入斜杠,否则不需要。这样做的好方法是什么?

最佳答案

(file-name-as-directory dir) 将返回带有尾部斜杠的目录路径 dir,必要时添加一个,否则不添加。

如果您在列表中有部分路径序列,您可以执行以下操作:

(let ((directory-list '("/foo" "bar/" "p/q/" "x/y"))
(file-name "some_file.el"))
(concat
(mapconcat 'file-name-as-directory directory-list "")
file-name))

"/foo/bar/p/q/x/y/some_file.el"

或者作为替代方案,如果您想在列表中包含文件名,您可以使用 directory-file-name ,它与 file-name-as-directory 相反:

(let ((path-list '("/foo" "bar/" "p/q/" "x/y/some_file.el")))
(mapconcat 'directory-file-name path-list "/"))

"/foo/bar/p/q/x/y/some_file.el"

(如果在非目录上使用 directory-file-name 不可移植,请有人纠正我?)

关于emacs - 在 Elisp 中,如何正确插入带有斜杠的路径字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com