Boost 文件系统迭代失败,路径很长

Boost filesystem iteration fails with a long path

我正在尝试使用 boost::filesystem 迭代到文件夹中,但是当路径太长(绝对路径 >95 个字符)时,boost 迭代失败。 有人知道这个问题吗?有解决办法吗?

while (itr != boost::filesystem::recursive_directory_iterator())
{
    ++itr;
}

我正在使用 boost 1.57 和 VS2013。

这是一个 windows 问题,而不是提升问题,唯一的解决方案是缩短路径或切换到 Unicode 进行文件系统交互,如果您的程序本身使用8 位字符。对不起。

尽管 Windows 声称最多支持 MAX_PATH 个字符(通常为 260 个),但根据我的经验,您经常会在到达该路径长度之前遇到困难。作为一个例子(不是你的问题,而是一个例子)Visual Studio 特别假设它需要在你的路径中附加额外的垃圾,这样它会大大减少实际可用的路径。

更多信息,see the link posted by @JTejedor