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 特别假设它需要在你的路径中附加额外的垃圾,这样它会大大减少实际可用的路径。
我正在尝试使用 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 特别假设它需要在你的路径中附加额外的垃圾,这样它会大大减少实际可用的路径。