我正在尝试使用boost :: filesystem迭代到一个文件夹,但是当路径太长(绝对路径> 95 chars)时,迭代时提升失败。 有人知道提升问题吗?有什么想法解决它?
while (itr != boost::filesystem::recursive_directory_iterator())
{
++itr;
}
我正在使用boost 1.57和VS2013。
答案 0 :(得分:1)
这是一个Windows问题,而不是提升问题,唯一的解决方案是缩短路径或切换到Unicode以进行文件系统交互,如果程序本身使用8位字符,则会触发一组不同的问题。抱歉。
虽然Windows声称支持最多MAX_PATH字符(通常为260),但根据我的经验,在达到该路径长度之前,您经常会遇到困难。作为一个例子(不是你的问题,而是一个例子),Visual Studio特别假设它需要在你的路径上附加额外的垃圾,这样它会大大减少实际的可用路径。
有关详细信息,请see the link posted by @JTejedor