是什么决定了文件的列出顺序?

时间:2013-01-08 23:00:18

标签: c++ file-io

以下代码示例允许您了解目录中的所有文件。

DIR *pDIR;
struct dirent *entry;

if( (pDIR = opendir(path)) != NULL )
{
    while( (entry = readdir(pDIR)) != NULL )
    {
    if( strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0 )
    {
            string path_to_file(path);
            path_to_file.append("/");
            path_to_file.append(entry->d_name);

            cout << path_to_file << endl;
        }
    }
}

文件未按字母顺序列出:什么决定了它们的列出顺序?

2 个答案:

答案 0 :(得分:4)

正如詹姆斯所说,没有任何指明顺序。文件系统完全取决于它喜欢的任何顺序的文件。在Windows NTFS(和OS / 2的HPFS)文件确实按字母顺序排序(以二叉树的形式,使得按名称搜索文件变得容易)。在“DOS”FAT文件系统中,文件按创建顺序排列,如果删除文件,则“slot”用于创建的下一个文件。在Linux操作系统中,ext {2,3,4}是最常用的,我认为它类似于FAT,但确切的结构并不相同。

还有许多其他文件系统(对于Linux,至少有六个,几乎每个我没有提到过的操作系统都有自己的变体),它们都有自己的处理方式。如果您希望可靠地按任何特定顺序对文件进行排序,则必须对它们进行排序。

答案 1 :(得分:1)

没什么,真的。他们按照发现的顺序列出 目录。哪个未指定;在实践中,这取决于 关于目录中发生的整个历史记录。