以下代码示例可让您了解目录中的所有文件。
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;
}
}
}
文件未按字母顺序列出:是什么决定了它们的列出顺序?
最佳答案
正如 James 所说,没有指定顺序。文件系统可以按照它喜欢的任何顺序对文件进行排序,这完全取决于文件系统。在 Windows NTFS(和 OS/2 的 HPFS)中,文件确实是按字母顺序排列的(以二叉树的形式,便于按名称搜索文件)。在“DOS”FAT 文件系统中,文件按创建顺序排列,如果删除了一个文件,则该“槽”将用于创建的下一个文件。在Linux操作系统中ext{2,3,4}是最常用的,我认为它类似于FAT,但确切的结构并不相同。
还有许多其他文件系统(对于 Linux 至少有六个,几乎每个我没有提到名字的操作系统都有自己的变体),它们都有自己的做事方式。如果您希望以任何特定顺序可靠地对文件进行排序,则必须对它们进行排序。
关于c++ - 什么决定了文件列出的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14225544/