【发布时间】:2019-08-26 20:03:43
【问题描述】:
我知道如何在 Unix 中获取文件列表。我试过的c++程序如下。现在如何按降序打印最大的文件?
int main() {
DIR* drstrm = opendir(".");
if (drstrm == NULL) {
perror("error opening directory");
return 1;
}
struct dirent* directoryentry = readdir(drstrm);
while (directoryentry != NULL) {
cout << (*directoryentry).d_name << endl;
directoryentry = readdir(drstrm);
}
return 0;
}
【问题讨论】:
-
可以使用C++17标准文件系统库吗?
-
而
(*foo).bar通常写成foo->bar,顺便说一句。 -
我并不一定打算将它作为一个链接的完全副本关闭,但它会自动完成。 :-/ 无论如何,readdir() does not specify an order。我要指出的方向就是这基本上是“您需要将信息放入结构中并对其进行排序”。因此,您的问题不是关于文件,而是一个更简单的问题,例如“我如何制作/排序列表”——对此有很多研究答案。
-
我只是想对 IS_REG 为 true 的文件执行此操作。知道如何为这些特定文件执行此操作吗?
-
是的,你可以@shawn。