Emacs 口齿不清 : Get directory name (not path) from the path

标签 emacs path directory cross-platform elisp

我正在寻找一种简单且可移植的方法来获取目录路径的最后一个组件或从路径中获取目录本身。函数的语义应该是这样的:

(get-dirname-nonpath "/some/dir/")  ;; should return "dir"
(get-dirname-nonpath "C:\Windows\Path") ;; should return "Path"
(get-dirname-nonpath "/some/path/to/my/source.ext")  ;; returns "my"

在最后一个例子中,如果函数返回“source.ext”而不是“my”也很好,特别是如果这会使它更短。
查看 emacs,我找不到有助于实现此目的的内置函数:

当然,我可以使用(反)斜杠进行一些字符串操作,但这看起来很困惑,更像是一种黑客攻击。以健壮(不考虑操作系统)的方式执行此操作的正确方法是什么?

编辑 :到目前为止我能找到的最好的是:(file-name-nondirectory (directory-file-name ...))

最佳答案

(file-name-nondirectory (directory-file-name (file-name-directory ...)))
如果你想让你的第三个例子工作,你需要最后一部分:
(file-name-nondirectory (directory-file-name (file-name-directory "/some/path/to/my/source.ext")))
返回 "my" .

关于Emacs 口齿不清 : Get directory name (not path) from the path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27284851/

相关文章:

emacs - 仅在连接到远程时更改 emacs shell 背景颜色

web-applications - JSF:超链接到/webapp 子目录中的网页

php - php : read filenames, 生成 javascript 和 html 时出现问题

python - 跨平台桌面目录路径?

scala - 'ensime generate' 不是有效的 sbt 命令

emacs - 更改组织模式链接颜色

emacs - 脚本的执行环境(eshell vs bash)

python - 对于不同的 Linux 发行版(Debian、Redhat、Slackware 等),python 标准库和 dist-packages 的路径是否不同?

vbscript - 如何在 VBScript 中获取文件的完全限定路径?

python - Python 中的截断路径