由于我正在使用一个宏,如果给定的路径与驱动器上的本地路径不相等,则似乎可以工作,因此我首先需要验证路径在大小写方面是否存在。不幸的是(在我的情况下),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);