Windows uses case-insensitive file names, so I can open the same file with any of these:
r"c:\windows\system32\desktop.ini"
r"C:\WINdows\System32\DESKTOP.ini"
r"C:\WiNdOwS\SyStEm32\DeSkToP.iNi"
etc. Given any of these paths, how can I find the true case? I want them all to produce:
r"C:\Windows\System32\desktop.ini"
os.path.normcase
doesn't do it, it simply lowercases everything. os.path.abspath
returns an absolute path, but each of these is already absolute, and so it doesn't change any of them. os.path.realpath
is only used to resolve symbolic links, which Windows doesn't have, so it's the same as abspath on Windows.
Is there a straightforward way to do this?