Если у меня есть строка, которая разрешает путь к файлу в Windows, есть ли приемлемый способ получить каноническую форму имени файла?
Например, я хотел бы знать,
C:\stuff\things\etc\misc\whatever.txt
и
C:\stuff\things\etc\misc\other\..\whatever.txt
на самом деле указывают на тот же файл или нет, и сохраняют каноническую форму пути в моем приложении.
Обратите внимание, что простые сравнения строк не будут работать, равно как и никакая магия RegEx. Помните, что у нас есть такие вещи, как точки повторной обработки NTFS , с которыми нужно работать начиная с Windows 2000 и новой структуры библиотек в Windows 7.