以下代码示例允许您了解目录中的所有文件。
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;
}
}
}
文件未按字母顺序列出:什么决定了它们的列出顺序?
答案 0 :(得分:4)
正如詹姆斯所说,没有任何指明顺序。文件系统完全取决于它喜欢的任何顺序的文件。在Windows NTFS(和OS / 2的HPFS)文件确实按字母顺序排序(以二叉树的形式,使得按名称搜索文件变得容易)。在“DOS”FAT文件系统中,文件按创建顺序排列,如果删除文件,则“slot”用于创建的下一个文件。在Linux操作系统中,ext {2,3,4}是最常用的,我认为它类似于FAT,但确切的结构并不相同。
还有许多其他文件系统(对于Linux,至少有六个,几乎每个我没有提到过的操作系统都有自己的变体),它们都有自己的处理方式。如果您希望可靠地按任何特定顺序对文件进行排序,则必须对它们进行排序。
答案 1 :(得分:1)
没什么,真的。他们按照发现的顺序列出 目录。哪个未指定;在实践中,这取决于 关于目录中发生的整个历史记录。