Как расширить максимальный размер пути к файлу в Windows 7? [Дубликат]

Ответы:

21

К сожалению, ответ « зависит от программы ». Люди, которые пишут программы, должны определить, какой метод они хотят использовать. Фактически, (бесстыдный плагин) я написал в блоге несколько недель назад запись, в которой описывается проблема в проводнике, все еще ограниченная MAX_PATH .

В зависимости от того, что вы пытаетесь сделать, вы можете использовать другую программу для управления длинными путями, например Microsoft Word. В противном случае, ваш единственный вариант - просто «жить с этим», так как он был таким всегда и, похоже, не изменится в ближайшее время.

Просто подумал, я бы также упомянул, что 64-битная Windows также использует API-интерфейс Win32, и CreateFileAдля 32-битных и 64-битных программ есть проблема.


РЕДАКТИРОВАТЬ: Geeky Подробности

Проблема существует только в CreateFileAфункции и CreateFileWфункции, когда используется абсолютный путь с буквой диска. Единственный способ обойти это (в коде) - это использовать \\?\C:\Path\To\File.txtсинтаксис ... так что даже программы, использующие CreateFileWпуть, C:\Path\To\File.txtимеют проблему. Это сложно описать, но само собой разумеется, что главная причина того, что программы не поддерживают внутренний \\?\синтаксис, заключается в том, что они теряют способность использовать относительные пути (например, пути ..\Documents\file.doc).

Джошуа
источник
Вздох Да, я использовал Windows Explorer. Мне это кажется странным, потому что я обычно мог без проблем создавать чрезвычайно длинные пути к файлам в Windows XP (я никогда не получал ошибку длинного пути в XP. Не один раз!). Ну что ж
Кэмерон
2
Да, есть разные способы обойти эту проблему, но ни один из них не работает на 100%. Честно говоря, я считаю эту проблему огромной проблемой, поскольку мы храним все больше и больше файлов. Я действительно получаю, когда Word прекрасно может сохранить длинный путь, но когда вы используете проводник для копирования, он умирает с «Путь слишком длинный для места назначения»
Джошуа
Спасибо за «отвратительные детали», они очень интересны (и в некотором смысле имеют смысл) для меня, потому что я студент-программист (хотя я еще не использовал Win32 API)
Кэмерон
Забавно, я все время получал эту ошибку длинного пути в XP / 2003.
Surfasb
6

Команда SUBST, включенная в Windows 7, позволит получить более длинный путь через новую букву виртуального диска.

Связывает путь с буквой диска.

SUBST [диск1: [диск2:] путь]

SUBST диск1: / D

диск1: указывает виртуальный диск, которому вы хотите назначить путь.

[диск2:] путь Указывает физический диск и путь, который вы хотите назначить виртуальному диску.

/ D Удаляет замещенный (виртуальный) диск.

Введите SUBST без параметров, чтобы отобразить список текущих виртуальных дисков.

Майк
источник