有谁知道Win32处理不区分大小写的文件名时使用的区域性设置?
这是否根据用户的区域性而有所不同,还是Win32使用的区域性规则不变?
最佳答案
大概的答案是
Comparing Unicode file names the right way。
基本上,建议将两个字符串都大写(使用CharUpper
,CharUpperBuff
或LCMapString
),然后使用二进制比较(即memcmp或wmemcmp,而不是具有不变语言环境的CompareString)进行比较。文件系统不执行Unicode规范化,并且大小写规则不依赖于语言环境设置。
不幸的是,在处理字符的大小写规则在不同版本的Unicode上发生了变化的情况时,模棱两可的情况不尽如人意,但效果却差不多。
关于winapi - Win32文件名比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410502/