在Racket中,我可以使用directory-list
函数获取当前目录中所有文件的列表:
> (directory-list)
'(#<path:.git>
#<path:.gitignore>
#<path:README>)
但是,如果我ls
在命令行上运行,则默认为隐藏所有以.
$ ls
README
有什么方法可以过滤结果directory-list
以仅显示未隐藏的文件?
file/glob
默认情况下,该库忽略点文件。您可以使用关键字参数覆盖该行为。
$ ls
README
$ racket
Welcome to Racket v7.6.0.9.
> (require file/glob)
> (glob "*")
'(#<path:/tmp/dir/README>)
> (glob "*" #:capture-dotfiles? #t)
'(#<path:/tmp/dir/.git> #<path:/tmp/dir/.gitignore> #<path:/tmp/dir/README>)
编辑:如果您仅搜索当前目录,则可以使用来获取相对路径find-relative-path
:
> (map (lambda (x) (find-relative-path (current-directory) x)) (glob "*"))
'(#<path:.git> #<path:.gitignore> #<path:README>)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句