Ответ 1
Префикс имени файла \\?\
, чтобы разрешить синтаксический анализ пути большой длины. Например, вы пишете
if FileExists('\\?\'+FileName) then
....
Обратите внимание, что это будет работать, только если вы вызываете Unicode-версии функций Win32 API. Поэтому, если вы используете Unicode Delphi, тогда это выполнит эту работу. В противном случае вам придется свернуть собственную версию FileExists
, которая вызывает Unicode-версии функций API.
Эти проблемы подробно обсуждаются в MSDN: Именование файлов, путей и пространств имен.