一千萬個為什麽

搜索

遞歸列出所有文件和子目錄

有沒有辦法,可能使用包,遞歸列出所有文件(帶路徑)和子目錄(或至少子目錄,因為非空的路徑可以從當前目錄中包含的文件的路徑中收集?

我能找到的最接近的是 projectile 包的 projectile-find-file 函數(或者, helm-projectile-find-file 函數的 helm-projectile 包),但它似乎無法列出空文件夾。此外,它似乎只適用於Git和其他版本控制存儲庫,但可能有一個解決方法來解決此限制。

最佳答案

目錄文件的遞歸

(我認為這是在Emacs 25中添加的)

here's the link to the manual: https://www.gnu.org/software/emacs/manual/html_node/elisp/Contents-of-Directories.html

返回名稱與regexp匹配的目錄下的所有文件。此函數以遞歸方式搜索指定目錄及其子目錄,查找其基本名稱(即沒有前導目錄)與指定正則表達式匹配的文件,並返回匹配文件的絕對文件名列表(請參閱絕對文件名) 。文件名以深度優先順序返回,這意味著某些子目錄中的文件在其父目錄中的文件之前返回。此外,在每個子目錄中找到的匹配文件按其基本名稱按字母順序排序。默認情況下,列表中省略了名稱與regexp匹配的目錄,但如果可選參數include-directories為非零,則包含它們。

(目錄文件的遞歸 default-directory "")

轉載註明原文: 遞歸列出所有文件和子目錄