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