真正的问题在哪里? 此路径存在,但是程序失败。
我想知道这个问题的原因吗?
const std::filesystem::directory_options options = (
std::filesystem::directory_options::follow_directory_symlink |
std::filesystem::directory_options::skip_permission_denied
);
try
{
for (const auto& dirEntry :
std::filesystem::recursive_directory_iterator("C:\\Users\\myuser",
std::filesystem::directory_options(options)))
{
std::cout << dirEntry.path().generic_string() << std::endl;
}
}
catch (std::filesystem::filesystem_error & fse)
{
std::cout << fse.what() << std::endl;
}
C:/ Users / myuser / Contacts / {857B728B-5B31-4F94-B832-522DF52E4335} /VertiPaq_68547BCEF3A344CDA3CE/724C7FC1B3284E4BBE1C.3.db/Model.193.cub/Cuentas por Cobrar_f7776b1c1d1d1d1d1d-f7776b2c1d1d-d1e2d-d-f7776b2c1d1d-e1d-c-d561-c1d2d1e1d-d-f7776b1c-d1d2d-d-f7776b1c-d1d2d-d-f7776b1c-d1d2e1d-d-f7776b1c-d1d1d-c7d3d-f1c2880d1d-ea17-400-c 92.det / Cuentas por Cobrar_f7776207-ea17-4002-8801-3561d1b2d1fc.23.prt recursive_directory_iterator :: operator ++:系统找不到指定的路径。
答案 0 :(得分:3)
问题可能是std::filesystem
只能是实现实际文件系统的可移植抽象。根据您的路径,我假设您正在使用Microsoft Windows。
因此,问题很明显:您的路很长:它的260个可见字符以及不可见的结束符/空值/终止符。这比MAX_PATH
,see this documentation.
在Windows API中(以下讨论的一些例外) 段落),路径的最大长度为MAX_PATH,即 定义为260个字符。本地路径按以下顺序构造:驱动器号,冒号,反斜杠,用反斜杠分隔的名称组成部分以及终止的空字符。