最好的方法来确定在Windows中是否有两个路径引用同一个文件? [英] Best way to determine if two path reference to same file in Windows?
问题描述
我如何比较2个字符串来确定他们是否使用C / C ++在Win32中指向相同的路径?
虽然这将处理很多情况下它错过一些事情:
_tcsicmp(szPath1,szPath2)== 0
例如:
-
正斜杠/反斜杠
$ b
使用 CreateFile打开这两个文件
,调用 GetFileInformationByHandle
,并比较 dwVolumeSerialNumber
, nFileIndexLow
, nFileIndexHigh
。如果所有三个都相同,则它们都指向同一个文件:
How would I compare 2 strings to determine if they refer to the same path in Win32 using C/C++?
While this will handle a lot of cases it misses some things:
_tcsicmp(szPath1, szPath2) == 0
For example:
forward slashes / backslashes
relative / absolute paths.
[Edit] Title changed to match an existing C# question.
Open both files with CreateFile
, call GetFileInformationByHandle
for both, and compare dwVolumeSerialNumber
, nFileIndexLow
, nFileIndexHigh
. If all three are equal they both point to the same file:
GetFileInformationByHandle
function
BY_HANDLE_FILE_INFORMATION
Structure
这篇关于最好的方法来确定在Windows中是否有两个路径引用同一个文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!