当前位置:  开发笔记 > 编程语言 > 正文

Elisp中绝对路径的相对路径

如何解决《Elisp中绝对路径的相对路径》经验,为你挑选了3个好方法。

有一个相对路径,如何从我正在加载的elisp文件的位置将其转换为绝对路径.也就是说,我有一个我正在加载的elisp文件,它有一个相对路径,我需要一个绝对的路径.



1> Trey Jackson..:
'file-truename

从文档:

返回FILENAME的名称,这应该是绝对的.通过在文件级别和包含它的目录级别追逐符号链接来找到文件名的名称,直到在任何级别都没有链接.

提供的另一个解决方案('expand-file-name)留下了符号链接,这可能是您想要的,也可能不是.'file-truename使用'expand-file-name,因此它们都将确定缓冲区的路径相对默认目录(这就是你要求的).

在看到对不同答案的评论/问题之后,问题是default-directory是调用'load的缓冲区的目录.

幸运的是,有一个变量'load sets,它存储了正在加载的文件的路径.试试这段代码:

;; this is in the file being loaded
(let ((default-directory (file-name-directory load-file-name)))
   (file-truename "blih"))



2> pupeno..:

我最终使用:

(expand-file-name "relative/path" (file-name-directory load-file-name))



3> Emerick Rogu..:

您可以使用该expand-file-name函数将相对文件名或路径转换为绝对文件名/路径.看这里了解更多信息.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有