这里已多次询问这个问题:"如何在c ++目录中迭代文件?"
我已经看到了这些响应,通常建议使用外部库(通常是boost文件系统)来处理这个问题以及操作系统在实现方面的差异。
我的问题是:为什么?为什么这么难? 我对这门语言不熟悉并且无法帮助,但我觉得我试图超越惯用语c ++的范围。
实现单个文件解决方案并使用其他语言实现文件迭代更合适吗?
答案 0 :(得分:2)
相对于其他语言,C ++有一个很小的标准库。这有其优点(将C ++移植到新平台更容易),但这也意味着,为了完成很多工作,您将依赖外部库。
在C ++ 17之前,文件系统工作还没有成为C ++标准的一部分。即使是现在,有些人仍然对C ++ 17文件系统库有抵抗力,因为它对某些类型的底层文件系统并不能很好地工作。
请注意,许多具有标准文件系统支持的语言都不支持这些平台 。
我是该语言的新手并且无法帮助,但我觉得我试图超越惯用的c ++范围。
如果你要使用C ++,那么你需要接受你必须出去使用其他库来获得许多其他语言免费提供给你的东西。使用库是如何用C ++完成工作的;它没有"超越界限"任何事情。
答案 1 :(得分:1)
如果不使用特定于平台的API,则无法在C ++目录中迭代文件。核心C ++语言和标准库不提供任何获取目录列表并迭代它的机制。因此,为了做到这一点,您必须使用外部库或特定于平台的API。