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

时间:2015-06-11 13:56:01

标签: c++ boost visual-studio-2013 boost-filesystem

我正在尝试使用boost :: filesystem迭代到一个文件夹,但是当路径太长(绝对路径> 95 chars)时,迭代时提升失败。 有人知道提升问题吗?有什么想法解决它?

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

我正在使用boost 1.57和VS2013。

1 个答案:

答案 0 :(得分:1)

这是一个Windows问题,而不是提升问题,唯一的解决方案是缩短路径或切换到Unicode以进行文件系统交互,如果程序本身使用8位字符,则会触发一组不同的问题。抱歉。

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

有关详细信息,请see the link posted by @JTejedor