【问题标题】:Emacs lisp: Get directory name (not path) from the pathEmacs lisp:从路径获取目录名称(不是路径)
【发布时间】:2015-02-01 18:59:08
【问题描述】:

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

(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,我找不到有助于实现此目的的内置函数:

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

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

【问题讨论】:

    标签: emacs path directory cross-platform elisp


    【解决方案1】:

    (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"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 2019-10-14
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多