作为第一次使用vi和原始的Linux终端在C ++中使用vi进行编程,最简单的方法是通过文件系统递归并获得诸如文件大小,日期,目录日期等结果吗?
我想我缺少一个或两个可以很干净地处理此问题的库,这将是一个很好的认识。甚至更好的是知道在哪里可以找到像这样的基础的扎实参考。
答案 0 :(得分:5)
如果您使用的是现代编译器,则可以使用std :: filesystem:
https://en.cppreference.com/w/cpp/filesystem
否则,您可以使用boost :: filesystem,它非常相似,但是不标准:
https://www.boost.org/doc/libs/1_67_0/libs/filesystem/doc/index.htm
Boost是具有各种目的且注重质量的库的集合。 Boost库通常会以新的C ++标准结尾,因此学习是一件好事。
答案 1 :(得分:2)
您可能会考虑(至少在Linux上)使用nftw(3)。您可以将opendir(3) + readdir(3) + closedir
与stat(2)一起使用(nftw
正在使用所有这些)。另请参阅syscalls(2)(并阅读一些Linux编程书籍,也许是旧的ALP)。请注意,在Linux(和POSIX系统)上,操作系统API使用C而不是C ++。
当然,您可以使用f4's answer中提供的C ++函数(它们基于上面的函数)。