我想獲得一個目錄中具有特定擴展名的所有文件的列表,然後將其作爲參數傳遞。如何在ELisp中做到這一點?如何通過擴展名獲取文件列表?
3
A
回答
5
2
directory-files
以列表形式檢索目錄中的所有文件。 remove-if-not
刪除與謂詞不匹配的列表條目。
(require 'cl)
(remove-if-not (lambda (filename) (eq "ext" (file-name-extension filename)))
(directory-files dir))
(我很想避免(require 'cl)
那裏。http://emacswiki.org/emacs/ElispCookbook#toc38有一些提示。)
+0
http://stackoverflow.com/a/2235401/874188有一個非CL等效。 '(delq nil(mapcar(lambda(filename))(if(eq「ext」(file-name-extension filename))filename nil))(directory-files dir)))' – tripleee
0
我的經驗法則是我每次在elisp的文件和文件路徑工作時間使用f
庫。這裏你需要f-files
來獲取目錄中的文件列表,並且需要f-ext
以從文件名中提取擴展名。 -filter
是與dash
列表操作庫相當的remove-if-not
。你需要的表達式是這樣的:
(-filter (lambda (x) (equal (f-ext x) "ext")) (f-files "dir"))
隨着anaphoric macros,我們可以通過刪除lambda
做得更簡潔的表達(慣例是使用2個破折號的照應版本):
(--filter (equal (f-ext it) "ext") (f-files "dir"))
但f-files
接受定製已經過濾了文件列表的功能,爲什麼不放棄-filter
?
(f-files "dir" (lambda (x) (equal (f-ext x) "ext")))
(f--files "dir" (equal (f-ext x) "ext")) ; anaphoric version
相關問題
- 1. 如何通過擴展名獲取文件名?
- 2. 如何通過file_get_contents獲取文件擴展名
- 3. Android - 如何獲取文件擴展名?
- 4. Angularjs如何獲取文件擴展名?
- 5. 通過文件擴展名獲取擴展名和圖標的最快方法?
- 6. 獲取文件擴展名
- 7. 通過名稱獲取文件擴展名
- 8. 如何從沒有擴展名的文件名獲取文件擴展名?
- 9. tfs api通過擴展名獲取文件
- 10. Python,試圖通過URL獲取文件擴展名
- 11. 通過System.Reflection.Assembly獲取dll文件擴展名
- 12. 獲取除擴展名外沒有擴展名的文件名
- 13. ManifestEditor如何獲取插件擴展名列表?
- 14. 如何獲取python目錄中的文件名列表(沒有擴展名)?
- 15. Python - FOR循環通過文件擴展名刪除列表項
- 16. 獲取文件的擴展名,但無法獲取文件名
- 17. 如何通過文件擴展名獲取多媒體類型的TCM URI
- 18. 如何獲取Google文檔中文件的文件擴展名?
- 19. 獲取public.movie UTI文件擴展名列表
- 20. 獲取帶有擴展名的目錄中的文件列表
- 21. 通過htaccess添加文件擴展名
- 22. Mercurial通過文件擴展名搜索
- 23. 如何通過擴展名從chrome選項卡獲取響應?
- 24. 如何通過JQuery找到沒有擴展名的文件名
- 25. 當文件沒有擴展名時如何獲取文件UTI?
- 26. 如何獲取上傳文件的文件擴展名
- 27. 如何獲得文件的擴展名
- 28. 如何通過sql查詢獲得文件的文件擴展名?
- 29. 獲取Php文件/圖像擴展名
- 30. 獲取文件的擴展名(編輯)
我不明白「然後將它作爲參數傳遞」。你能否編輯這個問題來澄清你期望的輸出類型? – tripleee