В Windows API максимальная длина пути равна MAX_PATH, которая определяется как 260 символов. Локальный путь структурируется в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имен, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диске D равен «D: \ some 256-символьная строка пути <NUL>
», где «<NUL>
» представляет невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы <> используются здесь для наглядности и не могут быть частью допустимой строки пути.) [MSDN]
Версии Unicode для нескольких функций допускают максимальную длину пути приблизительно 32 000 символов, состоящую из компонентов длиной до 255 символов. Чтобы указать этот тип пути, используйте префикс "\\?\"
. Максимальный путь в 32 000 символов является приблизительным, поскольку префикс "\\?\"
может быть расширен до более длинной строки, а расширение применяется к общей длине.
Например, "\\?\D:\<path>"
. Чтобы указать такой UNC-путь, используйте префикс "\\?\UNC\"
. Например, "\\?\UNC\<server>\<share>"
. Эти префиксы не используются как часть самого пути. Они указывают, что путь должен быть передан в систему с минимальной модификацией, что означает, что вы не можете использовать прямую косую черту для представления разделителей пути или точку для представления текущего каталога. Также нельзя использовать префикс "\\?\"
с относительным путем. Относительные пути ограничены символами MAX_PATH.
Оболочка и файловая система могут иметь разные требования. Можно создать путь с помощью API, который пользовательский интерфейс оболочки не может обработать.
Синтаксис C #:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool DeleteFile(string path);
Для получения дополнительной информации о классе см. Пространство имен системы - MSDN
Выдержки из:
Пути файловой системы: как долго это слишком долго? - Код ужасов
Функция DeleteFile (Windows) - MSDN