Чи виправила Windows 7 обмеження на шлях до файлів із 255 символів?


92

Як я розумію, обмеження 255 символів у шляху до файлу є обмеженням для Windows. Які аргументи цьому? Якщо так, чи це вирішено в Windows 7?

У нашій практиці безперервної інтеграції ми часто маємо глибоко вкладені структури проектів, і було б надзвичайно корисно мати можливість перевищувати 255 символів. Зараз ми дещо змушені структурувати наші проекти таким чином, щоб не вдаритись до цієї штучної стелі.


3
@DavidHeffernan Але це 260 включає нульовий символ в кінці та `C: \` на початку, тому можна використовувати лише 255 символів.
Аарон Дюфур,

2
@DavidHeffernan Я помилився. Корпорація Майкрософт часто цитує довжину як 256, яку ви отримуєте, коли правильно віднімаєте, а не 260, що технічно є межею.
Аарон Дюфур,

5
Ця проблема мене розлючує. Він все ще присутній у Windows 8.1. Здається, я не можу переміщати свої файли, хоча НЕКОТО-небудь файл був створений спочатку. Якщо ви знайдете якийсь спосіб створити файли із 255+ іменами шляхів до файлів, ви можете повністю зіпсувати чиюсь машину Windows.
Автоматично,

За словами Джеремі Куне, проблема працює і, можливо, незабаром її вирішать. Дивіться це відео. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis

Питання про Windows 7, але в будь-якому випадку у Windows 10 є можливість увімкнути довгі шляхи для деяких програм. Для отримання більш докладної інформації перевірити цю відповідь: stackoverflow.com/questions/27680647 / ...
Quasoft

Відповіді:


44

Див. Http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Це пояснює, що версії API-інтерфейсів Windows Unicode мають вищі обмеження та способи їх увімкнення.


14
Але слово попередження: Є купа коду (в основному утиліти сторонніх систем тощо), який погано грає з довшими шляхами. У вас можуть виникнути проблеми з цим, якщо ви почнете використовувати довші шляхи.
ReinstateMonica Ларрі Остерман

2
Чи правильна ця стаття? Я зробив простий тест як з Провідником Windows, так і з командним рядком Windows у Windows 7, і я не можу створити шляхи до файлів із понад 260 символів. Чи не оновлювала Microsoft ці програми для використання версій Unicode API Windows?
Тамплієри

7
На жаль, Провідник Windows у Windows 7 x64 все ще підпадає під це обмеження шляху. Це створює враження, що вся операційна система не подолала цю межу, коли насправді просто Провідник Windows не був оновлений для роботи з довшими шляхами. Можливо, сторонній файловий менеджер, який використовує найновіші API, може обійти це. Зрештою, чи програма, здається, досягне обмеження шляху, буде залежати від того, чи використовує ця програма найновіші API в Windows.
user1445967

2
Не йдеться про "новіші" чи "старіші" API. Ви отримуєте підтримку довгих шляхів, лише якщо ви прямо про це просите, а Провідник цього не робить, мабуть, з очевидної причини: сумісності з існуючими сторонніми програмами.
Harry Johnston

9
-1 - Посилання на потенційне рішення завжди вітається, але, будь ласка, додайте контекст навколо посилання, щоб ваші однодумці мали певне уявлення, що це таке і чому воно існує. Завжди цитуйте найбільш релевантну частину важливого посилання, на випадок, якщо цільовий сайт недоступний або постійно переходить у офлайн-режим. meta.stackoverflow.com/tags/link-only-answers/info
Аарон Холл

20

Ви можете обійти цю межу, використовуючи subst, якщо вам потрібно.



1
Або роботокопія, вбудована в Windows, на основі цієї відповіді, stackoverflow.com/questions/29865863/…
KAE

5
Ви повинні продемонструвати, як, і надати посилання на відповідну документацію. -1
Аарон Холл

3
Поки я проголосував, я згоден, що приклад був би корисним: subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 це обійшло мене шляхом, глибиною 500 символів. Причиною ~ 1s є спосіб, який Explorer відформатував шлях.
Адам Марціонек,

1
Подібним рішенням було б використання з'єднань або через розширення оболонки, або через mklink Приклад:mklink /J C:\newdir C:\some\really\long\path\
Чарльз Грюнвальд

14

Обхідні шляхи не є рішеннями, тому відповідь "Ні".

Досі шукаючи обхідні шляхи, ось можливі рішення: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters


1
Основні елементи Windows, включаючи PowerShell, оболонку Windows Explorer і утиліти cmd, такі як del, все ще не можуть обробляти шляхи, що перевищують 250 символів, і жодне обхідне рішення не виправляє того факту, що основні технології Microsoft не обробляють довгі шляхи, станом на 2016 рік. Коротка відповідь тут поки Microsoft не отримає колективну підтримку, ми мало що можемо зробити.
Уоррен П


1

З Windows 10 версії 1607 обмеження було знято, встановивши ключ реєстру

https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx?f=255&MSPPError=-2147217396#maxpath


2
але не в Windows 7?
gumuruh

Не здається розумним насправді голосувати проти цього, оскільки, хоча це не дає відповіді на питання, це, мабуть, корисно багатьом людям, які мають подібні запитання.
mwfearnley

Однак є й інші питання, що стосуються Win10
mjs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.