【发布时间】:2011-11-28 02:02:17
【问题描述】:
这是我正在尝试创建基于文件的 CMS 博客的内容。
为了显示我需要的帖子,我需要在一个文件夹中获取 10 个最新文件。
我找到了scandir,但我不需要读取所有文件,然后对它们进行排序,因为处理所需的时间取决于文件的数量。
所以我找到了opendir,这样我可以逐个文件地浏览文件夹,但是,正如 opendir 的文档所说,它使用 linux 中基于时间戳的文件系统的顺序,但首先是最新的文件修改。
所以我要问的是有没有办法改变 linux 如何对文件夹中的文件进行排序。 或者有没有办法做我想做的事?
【问题讨论】:
-
文档在哪里说 opendir 按日期顺序输出?我很确定它的顺序是任意的(可能是 inode 升序)。
-
@therefromhere here第一条评论
-
我相信你必须阅读所有文件(使用 scandir),因为你本质上是在排序一个无序列表,充其量是 O(n*log(n))... 而 linux 没有似乎允许您更改文件的顺序。出于好奇,为什么您的帖子文件而不是 MySql 条目?
-
@Tomas 根据经验,我很确定这是错误的(或者至少取决于文件系统)。不过,一开始你可能会把它们整理好……
-
@therefromhere,你可能是对的,我在文件管理和 php 方面没有太多经验;只是想我会分享我的 0.02 美元。
标签: php linux file list filesystems