我的问题类似于以下内容:要确定 Windows 平台上的两条路径是否相同,比较路径不区分大小写,ei。“C:\test.txt”和“C:\Test.txt”解析为相同的文件元素。例如,我可以通过使用轻松解决这个std::filesystem::equal
问题,但是对于这个特殊问题,我想在操作系统往返上节省一点(在空闲时运行并在每个循环上进行 100 次以上的比较 - 我很害怕它会很明显)
using path = std::filesystem::path;
const bool result = (path("C:\\test.txt").lexically_normal().make_preferred().native() == path("C:\\Test.txt").lexically_normal().make_preferred().native());
在比较std::filesystem::path
时,即使通过调用lexical_normal
进行词法规范化也是以通用方式完成的,因此会考虑这种情况。这当然是有道理的,但是除了对自己进行字符串比较之外,我看不到在不比较的情况下对库进行此操作的方法:是否有可能以某种方式覆盖路径的比较方式?
我也调查boost::filesystem
过,但据我所知也没有解决这个问题。