函数(directory-files-and-attributes "~/" 'full nil t)为主目录创建一个未排序的文件和目录列表。结果似乎是类似于file-attributes的格式,其文档可以在以下链接中查看:node/elisp/File-Attributes.html
这个线程的目标是创建一个按修改日期/时间排序的列表--在列表的开头使用最新的列表,在列表的末尾使用最老的列表。
最后,我想把这个详细的列表变成一个简单的列表,列出文件/目录的绝对路径--保持与上述排序相同的顺序。
发布于 2014-10-22 20:02:09
directory-files-and-attributes返回一个列表。值得庆幸的是,有许多Lisp函数可以转换列表。
首先,您希望通过比较每个条目的6个元素来排序列表。您可以使用本机Emacs sort函数来实现这一点,该函数将比较函数作为第二个元素:
(sort (directory-files-and-attributes "~")
#'(lambda (x y) (time-less-p (nth 6 x) (nth 6 y))))使用Common排序函数可以更清楚地实现同样的目标:
(cl-sort (directory-files-and-attributes "~")
#'time-less-p
:key #'(lambda (x) (nth 6 x)))现在只需要提取每个条目的第一个元素--使用mapcar对列表中的所有元素应用一个函数:
(mapcar #'car
(sort (directory-files-and-attributes "~")
#'(lambda (x y) (time-less-p (nth 6 x) (nth 6 y)))))https://stackoverflow.com/questions/26514437
复制相似问题