gpt4 book ai didi

c# - FindFirstFileEx 不区分大小写

转载 作者:行者123 更新时间:2023-12-03 02:58:13 25 4
gpt4 key购买 nike

由于我使用的宏似乎可以在给定路径与驱动器上的本地路径大小写不相等的情况下工作,所以我首先需要验证该路径是否存在(区分大小写)。不幸的是(就我而言)Directory.Exists() 不区分大小写。

所以我尝试了FindFirstFileEx将 dwAdditionalAttributes 设置为 1,代表 FIND_FIRST_EX_CASE_SENSITIVE 。不过,这似乎对我不起作用。我的本地路径是C:\Dir1\Dir2\Dir3。我比较的路径是C:\dir1\Dir2\Dir3。不幸的是,我总是得到 Dir3 结果。如果大小写不匹配,我会期望得到一个空结果。

我的错是什么?

string dir = @"C:\Dir1\Dir2\Dir3" + '\0';
int FIND_FIRST_EX_CASE_SENSITIVE = 1;
WIN32_FIND_DATA fi;

IntPtr h = FindFirstFileEx( dir,
FINDEX_INFO_LEVELS.FindExInfoStandard,
out fi,
FINDEX_SEARCH_OPS.FindExSearchNameMatch,
IntPtr.Zero,
FIND_FIRST_EX_CASE_SENSITIVE);

最佳答案

此功能取决于注册表项 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive 的值设置为 0,这不是默认值。

换句话说,它取决于底层文件系统设置,而不是 API 本身。

更多详细信息请参见:http://www.siao2.com/2010/12/08/10101148.aspx

关于c# - FindFirstFileEx 不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com