我想获得一个目录中具有特定扩展名的所有文件的列表,然后将其作为参数传递。如何在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