文件树如下:
- foo
- lorem
- ipsum <-
- baz <-
- bar
- baz
Run Code Online (Sandbox Code Playgroud)
当前访问的文件是ipsum.现在我想找到第一个
baz和它所在的目录.如何从ipsumelisp中走出树
?
Ste*_*fan 28
你想要的locate-dominating-file.
Chr*_*ett 16
(defun parent-directory (dir)
(unless (equal "/" dir)
(file-name-directory (directory-file-name dir))))
(defun find-file-in-heirarchy (current-dir fname)
"Search for a file named FNAME upwards through the directory hierarchy, starting from CURRENT-DIR"
(let ((file (concat current-dir fname))
(parent (parent-directory (expand-file-name current-dir))))
(if (file-exists-p file)
file
(when parent
(find-file-in-heirarchy parent fname)))))
Run Code Online (Sandbox Code Playgroud)
如果结果不是nil,则可以使用提取文件的目录file-name-directory,如下所示:
(let ((file (find-file-in-heirarchy (buffer-file-name) "baz")))
(when file
(file-name-directory file)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |