Трюк, который я использовал, чтобы обойти ограничение длины “полного пути и имени файла” для того, чтобы переместить, скопировать или удалить что-то, чтобы сократить его путем “взлома” наполовину вниз (или более) использованием отображенной буквы диска, указывающей на папку вниз по пути.
, так что у вас c:\some\long\path…\and\foo\bar\folders\oldfiles\myoldfile.txt.
Затем сопоставьте произвольную букву диска куда-нибудь по пути, чтобы первый фрагмент пути стал длиной всего несколько символов. Предпосылка - папка должна быть в общей папке (которая может быть уже, если она находится на сервере, где я должен был это сделать), а если ее еще нет, то выберите папку где-нибудь по пути и поделитесь ею. В зависимости от вашего окружения и уровня паранойи, разрешайте всем изменять доступ к ресурсу, если NTFS разрешения достаточно ограничены. Если хотите, просто разрешите изменять права только своей учетной записи.
Теперь перейдите в общую папку или в одну из ее частей и откройте к ней общий доступ, или используйте командную строку следующим образом. Предположим, что вы используете общую папку “foo” как “fooshare”, затем вы можете сделать
net use x: \mycomputername\fooshare\bar\folders /persistent:no
и диск X: теперь указывает непосредственно на папку “folders” внутри этого ресурса, так что “x:\oldfiles\myoldfile.txt” теперь довольно короткий.
(“/persistent:no” означает, что он не переживет следующей перезагрузки и запутает вас позже. Не забудьте разделить вашу папку по окончании перезагрузки)
Помните, что вам не обязательно разделять папку, содержащую файл, если он уже находится в общей папке, вы можете просто сопоставить through share и вложенные папки с целевой папкой near к файлу, и это будет работать нормально.
Мне пришлось использовать эту технику, делая массивную робокопию между двумя серверами, когда мы поняли, что пользователи картировали диски довольно глубоко в структуре папок, поэтому они смогли использовать 255 символов оттуда, но это превысило общую длину пути к файлу при доступе с локального диска с корнем.