Як видалити каталоги з занадто довгими для звичайного видалення каталогів


380

Схоже, у Windows є обмеження довжини імен файлів при спробі видалення, хоча це не заважає створювати ці файли.

Наш процес збирання створює низку тимчасових файлів (багато з яких складається з WSDL), які виконують цю межу. Наш скрипт мурахи якимось чином може видалити їх під час чищення, але іноді мені потрібно видалити каталог обробних робіт (куди йдуть всі тимчасові файли), фактично не виконуючи повне очищення від мурашки.

Це ті самі помилки, що і це питання , але відповіді там насправді не працюють для мене, оскільки я маю справу з каталогом, а не файлом, і я не завжди знаю, які конкретні файли чи підкаталоги викликають проблему. І я намагаюся уникати будь-якого ручного процесу (крім запуску однієї команди), щоб фактично їх видалити.

Якщо я спробую видалити каталог із Провідника, я отримаю помилку

Cannot delete [file name]: The file name you specified is not valid or too long.  
Specify a different file name

При спробі Remove-Itemв powerhell виникає така помилка:

Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
At line:1 char:12
+ Remove-Item  <<<< -force -Recurse <directory>

Хтось знає про будь-які інструменти чи прості способи подолати цю помилку видалення без необхідності вручну знаходити проблемні файли та переміщувати / перейменувати їх?


2
Я знайшов рішення безпосередньо перед публікацією цього питання, але оскільки інші можуть зіткнутися з цим, я вирішив опублікувати його, щоб вони могли знайти рішення, на яке я натрапив.
Гермс

О, я знаю, але, як правило, коли я роблю подібні речі, я залишаю питання "без відповіді" на деякий час, щоб побачити, чи є ще хтось із кращим рішенням.
Гермс

До Far найпростішого рішення: youtube.com/watch?v=qQTyTprFAOg
TAW

використовуючи Ubuntuабо будь-який інший, Linux Bootable CDми можемо завантажувати наш комп'ютер до Ubuntuбудь-якої іншої ОС тимчасово. тоді ми можемо вибрати папку і легко її видалити.
Kelum Priyadarshane

1
На це старе запитання також є кілька цікавих відповідей: superuser.com/questions/45697/…
AdamV

Відповіді:


421

Використовуйте 7-Zip File Manager, щоб видалити їх.

Якщо у вас все ще виникають проблеми, переконайтеся, що ви використовуєте Shift+ Deleteвсередині 7-Zip File Manager. В іншому випадку Windows намагається перенести їх у кошик (який знову вийде з ладу).


5
Дякую - це позбулося дерева-рега, яке пішло трохи рекурсивно і було занадто глибоким, щоб видалити del / rmdir / rm / explorer
Мартін Бекетт

63
відмінно працював, використовуючи shift + Del - 7zip не міг надсилати довгі файли у кошик ....
cori

66
+1 7zip. Ви повинні перейти до папки, а потім використовувати, shift + Delяк сказав @cori. Якщо ви виберете Deleteпараметр у контекстному меню, воно WILl не вдасться. shift + Delце!
Урда

8
7zip не працював для win7 64, так що Linux зробив.
Ерік Фрізен

13
Я схвалюю це, оскільки за допомогою 7zip ви можете видалити також видалити папку, яка містить довгі вкладені папки всередині. У мене виникла проблема з папкою node_module, яка містила безладні вкладені папки, і я не зміг її видалити. 7zip виправлено з базової папки бездоганно. +1
Грубер

310

Жоден з інших (безкоштовних) відповідей тут не працював на мене, але я знайшов його на іншому сайті:

rimraf <dir>

rimraf - це пакет Node.js , тому вам потрібно буде встановити Node.js, який включає npm . Тоді ви можете запустити:

npm install -g rimraf

Потім можна запустити rimrafз командного рядка.

Я знайшов це рішення, тому що саме npm спричиняв цю проблему через те, як вона вкладає залежності.

До речі, rimrafсвою назву отримує від команди UNIX rm -rf, яка рекурсивно видаляє файли та папки.


7
Перепробував багато способів. Це просто прекрасно працює!
Duckegg

2
Найкраща відповідь з усіх :) так, його легке бідність
Аль-Мотафар

2
Це має бути прийнятою відповіддю.
NINCOMPOOP

13
Ваше рішення працює, але це настільки f ## k-up, що мені потрібно використовувати модуль js node для видалення папок модулів js модулів ... Я більше не хочу жити на цій планеті
Benoit P,

4
Вузол створив проблему в першу чергу для мене настільки цікаво ... що вони також мають рішення.
Ерік Дж.

141

Для вирішення цього питання не потрібно встановлювати жодної програми .

Ця проблема легко вирішується за допомогою robocopyпопередньо встановленої системи Windows Vista, запущеної в 2006 році.

Наприклад, rmdir /S /Q <dir>повідомлялося про помилку в деяких випадках. Немає необхідності використовувати 7zip або будь-який інший сторонній інструмент. Powershell - це надмірність. Cygwin може працювати, але ви можете не встановити його. Отже, давайте зосередимось наrobocopy

Ідея полягає в тому, щоб

  1. використовувати robocopyдля копіювання + оновлено
  2. з нової порожньої папки
  3. до папки, яку ви хочете видалити, мета.

Після виконання robocopyцільовий каталог також буде порожнім.

Ці інструкції призначені для командного рядка. Просто відкрийте пошук у Windows, наберіть cmdі натисніть Enter.

Скажімо, мета для видалення:

C:\delete\this folder\with a very long name

Ми діємо так:

  1. Спочатку створіть порожній каталог, fi C:\emptyfolder.

    mkdir C:\emptyfolder
    
  2. Скопіюйте + оновлення з порожнього каталогу в ціль, скориставшись опцією /purge

    robocopy c:\emptyfolder "C:\delete\this folder\with a very long name" /purge
    
  3. Видаліть порожній каталог. Вам це вже не потрібно.

    rmdir c:\emptyfolder
    

Оскільки у вихідному каталозі немає файлів чи папок ( C:\emptyfolder), вони просто видаляють файли та папки під цільовим каталогом ( C:\delete\this folder\with a very long name) рекурсивно!

  • Заключний трюк: ви можете уникнути написання від руки

    C:\delete\this folder\with a very long name
    

    Перетягуючи папку з вікна Провідника та опускаючи у вікно Terminal / cmd.

Будьте уважні : Видалені файли не перейдуть до папки сміття ! Після видалення файли неможливо відновити.

(Взято з "Занадто довгий шлях? Використовуйте роботокопію" від BVLANGEN )

PS: Я розумію, що ця відповідь була тут, менш дидактично. Як видалити файл у Windows із занадто довгим ім'ям файлу? [дублікат]

Бенуа додав:

Можливо, вам доведеться пройти цей процес не один раз, щоб позбутися від усіх файлів.


11
Дякую-добрий пане !! Це має бути прийнятою відповіддю, оскільки всі інші або не працювали, або вимагали стороннього інструменту . :)
MickyD

Це прекрасно працює ... не потрібно нічого встановлювати (наскільки я знаю), і це швидко. Це має бути прийнята відповідь!
ксумарин

1
Це зберігає частину (або все) дерева каталогів під "c: \ delete Folder" (target dir). У будь-якому випадку, видаливши все за мить (думаю, файлів було мало), і мені просто довелося вручну <Del> "c: \ delete folder", дочірня служба видалилась без проблем. Працював як шарм. +1, має бути прийнятою відповіддю! :)
rld.

@rld, але чи існував "delete Folder" раніше? В іншому випадку, я думаю, він повинен бути порожнім, якби це був новий каталог. Інакше це безлад. Я можу додати останній крок для "rmdir delete Folder".
hectorpal

1
При роботі з дуже рекурсивними каталогами ця опція набагато повільніше, ніж 7zip. Зачекавши 20 хвилин, я порівняв їх і зрозумів 7zip, хоч і не показує, що прогрес біг на 50 разів швидше.
Енді Калібр

84

Я вважаю, що я знайшов спосіб видалити речі з cmd. Спочатку я спробував delкоманду, але це не вийшло. Тоді я згадав rmdir. Виконайте наступне:

rmdir /S /Q <dir>

начебто спрацювало.


105
Не працювало для мене. :(
Ендрю Арнотт

не забудьте потрапити в cmd перед тим, як спробувати запустити rmdir.
brianpeiris

8
Для тих, хто не може скористатися цим рішенням, у мене є альтернативне рішення, яке працювало для мене (із занадто довгими іменами шляху / файлів): перемістіть файл (и) / каталог до C: \, щоб скоротити шлях, а потім видаліть звідти.
Anders Sandberg Nordbø

6
Можна мати каталоги, для яких це рішення не працюватиме, і 7-Zip можна видалити. У мене просто так трапилося.
SamStephens

2
Це рішення дає непослідовні результати. Будь ласка, не голосуйте.
hectorpal

29

Інструментом, яким я користувався, коли у мене була ця проблема, було FastCopy . Я вибрав Видалити все зі спадного меню, вибрав каталог, який хотів видалити, і натиснув Видалити все .

Екран діалогового вікна видалення FastCopy

FastCopy портативний (не потрібно встановлювати), і доступні 32-бітні та 64-бітні версії.


3
Якщо ви шукаєте інструмент командного рядка, ви можете скористатися невеликим інструментом, який я опублікував на GitHub ( github.com/epsitec/Tools-RecursiveDelete ).
П'єр Арно

У мене був рекурсивно створений набір вкладених файлів / папок. Це було єдине
діюче

2
Це працювало для мене, коли, помилка в командному рядку, спроба 7zip не вдалася. і навіть підтримка Microsoft була натхнена!
Кіт Рамос

Те саме - я почав видаляти файли з 7zip, але це також діяло дуже дивно, і мені довелося перемикати + видаляти кожен каталог кілька разів поспіль, щоб фактично його видалити, але потім я спробував цей інструмент, і працював як шарм . Запустив його двічі, щоб позбутися всіх файлів. Дякую!
Артаніс

Дякую, і для мене єдине робоче рішення, ВЕЛИКО !!!
час

26

Без встановлення додаткового програмного забезпечення ви можете використовувати substкоманду для тимчасового створення псевдоніма для довгої іменованої каталогу.

Наприклад, якщо ви хочете видалити папку, C:\Very long directory\that exceed\length limit\blah blah blah\abcde\folder to be deletedви можете скористатися командою

subst x: "C:\Very long directory\that exceed\length limit\blah blah blah\abcde"

а потім ви можете легко видалити X:\folder to be deletedв Провіднику Windows або в командному рядку. Для видалення псевдоніму тимчасової літери диска використовуйте команду

subst x: /d

Я спробував усі інші відповіді (включаючи відповіді на інші подібні запитання), і це був єдиний, який закінчився для мене. І це було далеко найшвидше.
glenneroo

1
Це, безумовно, найкраща відповідь: прості, вбудовані функції, не безладно з реєстром. Повинна бути прийнята відповідь.
Кевін Рош

Легко найчистіший і найпростіший метод, дякую Кеннет.
Сет

Е, ця відповідь мене лякає, бо у мене фактично є привід X: Тут недостатньо інформації, і я не рекомендую людям слідувати цьому без додаткових пояснень.
qodeninja

25

Cygwin rm -rfдобре працює на довгих шляхах!


3
Cygwin працював на мене чудово! Щойно зробив -rm -rf і всі файли видалено.
Ранхіру Джуд Курай

3
Працював і для мене під BNU bash, версія 4.1.10 (4)
-випуск

2
Чудово працював під час запуску з командного вікна Git Bash. Для цього я встановив GitGui.

22

Просто киньте з команди Powershell, натиснувши нижче:

Cmd /C "rmdir /S /Q <dir>" 

3
"Каталог не порожній". На жаль ОП хоче видалити не порожню папку.
leye0

чим це відрізняється від відповіді @herms?
bigbadmouse

18

Рішення Dentrasi - це те, що найкраще працювало для мене, але я хотів опублікувати конкретні кроки у відповіді вищого рівня.

  1. Завантажте та встановіть останню стабільну збірку 7zip .
  2. Запустіть 7zip File Manager ( 7zfm.exe ).
  3. У 7zip файловому менеджері перейдіть так, щоб побачити назву папки, яку потрібно видалити (тобто ви знаходитесь у батьківській папці).
  4. Утримуйте кнопку Shift.
  5. Натисніть кнопку " Видалити " на клавіатурі або на панелі інструментів 7zip File Manager; переконайтесь, що ви все ще утримуєте клавішу Shift .
  6. Натисніть кнопку « ОК »; переконайтесь, що ви все ще утримуєте клавішу Shift .

Приємна спроба, але все одно не працювало для мене з 10-ти рекурсивними папками. Працював лише римраф.
Джуліан Найт,

@JulianKnight: Так, такий підхід не закінчився і для мене 100% часу. Я просто хотів згадати про це, оскільки це було одним із найпростіших процесів, і воно, принаймні, працювало частину часу. Єдине, що я виявив, що це працювало 100% часу - це підхід до сценарію модуля Powershell + NTFSSбезпеки, який я описав нижче. IIRC rimraf не вдався, коли його подзвонили, саме тому я потрапив у цей безлад насамперед. Докладні відомості див. У цій темі Node.js: github.com/nodejs/node-v0.x-archive/isissue/…
Mass Dot Net

Так, завжди будуть такі проблеми. Насправді це був інсталяційний код бібліотеки Arduino IDE (Java), я випадково вибрав папку, що містить бібліотеки, як папку для встановлення бібліотеки, і з неї пішов! Я вбив процес, як тільки зрозумів, але вже мав 10-ти з папок K (чорт i7 / SSD!) Наступний головний випуск NPM призначений для допомоги у вирішенні багатьох проблем глибокої установки бібліотеки для Node, оскільки залежності повинні бути задоволені значно більш плоска структура. І все-таки я дуже радий, що хтось посадив мене в римраф - легко і безкоштовно.
Джуліан Найт

@JulianKnight - Так, день-два тому хтось сказав мені, що npm3 повинен допомогти полегшити ці проблеми, запобігаючи глибоко вкладені структури папок залежності.
Mass Dot Net

Не знайте, чи "заважає", але він більш чітко ставиться до вкладених залежностей, так що якщо для вашого основного додатка потрібна бібліотека X v1.0, а для бібліотеки Y потрібна Z, яка також вимагає X v1.0, буде використана бібліотека верхнього рівня. Наразі Z встановила б свою власну версію X.
Джуліан Найт,

11

У існуючих відповідях вже не згадуються дві речі.

  1. Ви можете використовувати префікс шляху збільшеної довжини для доступу до довгих шляхів
  2. У Windows 10 ви можете ввімкнути підтримку довгого шляху для загального використання - проте зауважте, що не всі програми працюватимуть з довгими шляхами, слід перевірити старіші програми. Використовувати це зможе лише програмне забезпечення з відповідним маніфестом.

Префікс довгого шляху

API Windows має спеціальну функцію, яка підтримує імена шляху Unicode довжиною до 32 к символів (кожен елемент має довжину до 255 символів).

Це часто помилково називають UNC іменуванням, але це незважає на те, що це пов'язано.

Префікс, який використовується для того, щоб вказати API використовувати довгі контури Unicode, \\?\як у:

\\?\D:\very long path

Імена UNC зазвичай використовуються при посиланні на шляхи на віддалених серверах у формі \\servername\path name\file name. Ви можете комбінувати це з префіксом довгого шляху так:\\?\UNC\server\share

Зауважте, що деякі, погано написані, але, на жаль, досить поширені програми, не підтримують шляхи до файлів UNC, а також префікс довгого шляху.

Довідка: https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath

Підтримка довгого шляху

Це параметр, який було додано до останніх версій Windows 10. На час написання запису він не активується за замовчуванням, оскільки вимагає конкретної підтримки додатків. Цікаво, що PowerShell має вбудовану підтримку, завдяки чому ця опція дозволить використовувати довгі шляхи безпосередньо в сценаріях PowerShell.

Ви можете активувати його через редактор групової політики, якщо у вас є версія Windows з цим. Або ви можете просто скористатися наведеною нижче зміною реєстру. Як завжди, будь ласка, резервні копії розділу реєстру, який ви змінюєте, перш ніж робити що-небудь.

  1. Біжи regedit.exe.
  2. Підтвердьте підказку UAC.
  3. Перейдіть до клавіші: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies
  4. Створіть або змініть ключ LongPathsEnabled.
  5. Якщо його не існує, клацніть правою кнопкою миші на Політиці та виберіть у меню Нове> 32-бітне значення.
  6. Набір LongPathsEnabledдля 1включити.

Будь-які програми з відповідними записами маніфесту тепер матимуть доступ до стандартних довгих шляхів POSIX. Сюди слід включити додатки Windows Store.

Довідка: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/

ОНОВЛЕННЯ 2017-04-09

@maoizm вказав на проблему з ключем реєстру вище, тому я ще трохи викопав . Схоже, тепер ви можете встановити довгу підтримку імені файлів за допомогою системного ключа:

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)

Це все ще працює лише для програм, які спеціально налаштовані для його використання, хоча (потрібен запис у manifest.xml програми).

Слід також зазначити, що не можна використовувати відносні імена шляху за допомогою цього методу.


{48981759-12F2-42A6-A048-028B3973495F}Machineчастина шляху реєстру буде різною на кожному комп’ютері - це може бути не очевидно для всіх
maoizm

1
@maoizm - хороший момент, дякую за те, що наголосив на цьому. Будь ласка, перегляньте моє оновлення для альтернативи, якщо використовуєте оновлення W10 Anniversary або пізнішу.
Джуліан Найт

Я пишу бібліотеку під назвою FoundationIO, і я намагаюся зробити довгий шлях за замовчуванням, чи є якась функція, яку я можу викликати, або макрос, яку я можу встановити, щоб підтримка довгого шляху автоматично включалася для будь-якого користувача моєї бібліотеки?
MarcusJ

Привіт Маркусе, це рідна бібліотека Windows? Якщо так, .NET має необхідну підтримку, яка вже є частиною відповідного API Windows - вибачте, що я не знаю деталей, оскільки я не є програмістом .NET або Win API, але ці дані слід шукати на MSDN.
Джуліан Найт

8

Мені подобається рішення cmd. Хоча я хочу поділитися ще одним вирішенням, яке працює навіть у просто Explorer: спробуйте скоротити імена батьківських папок перед видаленням: короткі назви скоротять шлях. Скажімо, у вас є така структура дерева папки:

C: \

.. Проекти

.. .. Якийсь дивовижний проект навесні 2014 року

.. .. .. Деяка активність у парку в місті в п'ятницю

.. .. .. .. Bla bla bla bla bla bla bla bla bla bla bla bla

.. .. .. .. .. Фактичні файли з довгими іменами теж

У цьому випадку ви не можете видалити папки, не можете видалити або перейменувати файли. Якщо ви хочете видалити всю структуру папки або її частину, ви можете тимчасово перейменувати батьківські папки та скоротити шлях, а потім видалити папку. Назви можуть бути лише літерами:

C: \

.. Проекти

.. .. х

.. .. .. у

.. .. .. .. з

.. .. .. .. .. Фактичні файли з довгими іменами теж

У моєму випадку я просто хотів видалити всю папку з великою кількістю папок і файлів. Тож я не переймався іменами папок.


1
Я написав крихітний інструмент, який робить саме це, і передав його GitHub. github.com/epsitec/Tools-RecursiveDelete
П'єр Арно

1
Усі команди чи Shift + DEL для мене не працюють, але це роблять.
larkee

Насправді не працює, коли у вас є 10-ти до вкладених папок
Джуліан Найт,

також не працює, якщо одна з папок має дійсно довге ім’я (ви не можете перейменувати папку, яка ображає).
аукупарія

7

Рішення на 7 zip чудово працює. Ще один варіант, якщо у вас встановлений git - це відкрити bash shell і використовувати:

rm -f

(або rm -rfдля папок)


1
Для непосвячених, будь ласка, поясніть, як ви "відкриваєте баш-оболонку" в Windows?
OMY

1
@OMY вам потрібно встановити git. Потім у меню "Пуск" ви можете відкрити git bash або якщо ви встановили розширення оболонки під час встановлення git, ви можете натиснути правою кнопкою миші в папку або на папку та вибратиGit Bash Here
Користувач

4

Я пропоную Total Commander (умовно-безкоштовне програмне забезпечення, але продовжує працювати після випробувального періоду лише з мінімальним початковим екраном). Ось так я завжди вирішую занадто довгі проблеми з іменем файлу .


1
Дякую господи, що я це знайшов. Проблеми з видаленням папки node_modules, оскільки вона вирішує тупо вкладати каталоги.
Псевдонім

Ну, @Alias, Total Commander полегшує виявлення цієї проблеми, принаймні для мене. Виявивши таку проблему, chkdskслід її вирішити.
Sopalajo de Arrierez

Версія 7.0 не працює, вона показує повідомлення про помилку і пропонує зробити операцію адміністратором, що також не працює.
izogfif

@izogfif: остання версія на сьогодні - 8.52a. Я б спробував цей. Ви не даєте деталей щодо свого повідомлення про помилку, але у вас може виникнути певна невідповідність структурі архіву, яка повинна бути вирішена (принаймні для NTFS) з "chkdsk c: / f" (якщо припустити диск C :).
Sopalajo de Arrierez

2

Ви також можете видалити їх за допомогою їх еквівалентного короткого імені. dir /xпокаже вам їх.


2

Я створив просту програму java, яка використовує роботокопію для видалення файлів. Баночка - це біг. Для додаткового виводу запустіть його з cmd-рядка.

https://drive.google.com/file/d/0B5pSEjxJvt_1WVp1T3puSm1CNjg/view?usp=sharing


2
І якщо ви не хочете використовувати Java, ви можете скористатися цим інструментом, який я написав за допомогою .NET ( github.com/epsitec/Tools-RecursiveDelete ).
П’єр Арно

@PierreArnaud велика утиліта. Мені потрібно щось подібне для автоматизації командного рядка. @ CamHart хороша робота з у теж! Спасибі, хлопці!
amitthk

1

Я спробував усі інші відповіді, але вони не спрацювали (як мінімум, для мене).

Я натрапив на delinfile і працював досить добре і досить швидко!

Пробна версія обмежена 3 дії / 15 днів, але вона може бути використана, якщо ви хочете видалити лише кілька папок / файлів:


1

Більші каталоги також розроблені для цього завдання. введіть тут опис зображення

  • Завантажити
  • Для видалення існуючих каталогів використовується рекурсивний виклик за допомогою RemoveDirectoryW
  • Використовує власне сховище файлів для новостворених каталогів
  • Файли можна переміщувати з каталогів до видалення контактів, що контактують.
  • Швидке, хоча навігація до верхньої частини каталогу - це клацання на вкладений каталог
  • Windows XP (SP3) та новіших версій
  • Непідписаний некерований код без інсталятора, тому можливе попередження Smartscreen при запуску із запасної папки, наприклад, на робочому столі.

Більше інформації у CodeProject .


Будь ласка, прочитайте Як я рекомендую програмне забезпечення для деяких порад щодо того, як вам рекомендувати рекомендувати програмне забезпечення. Ви повинні надати принаймні посилання, додаткову інформацію про саме програмне забезпечення та про те, як його можна використовувати для вирішення проблеми у питанні.
DavidPostill

@David: Краще? Посилання було дуже корисним, дякую.
Лорі Стерн

1

Я зіткнувся з цією проблемою в Windows 10 і знайшов це просте рішення.

  1. Зайдіть у глиб дерева ваших папок.
  2. Перетягніть папку з десь середини дерева до місця, де починається дерево, використовуючи адресний рядок.
  3. Як і в моєму зображенні, перетягніть червоне поле в зелене поле. (у цьому випадку шлях коротший, але для довгих шляхів він також працює)
  4. Тоді ваш шлях стає коротшим і видаляється як звичайно, використовуючи клавішу видалення.

введіть тут опис зображення


1

Отримав ідеальну відповідь тут (для файлів). Працює в Windows 10.

REM Make sure there is no \ at the end of either path!
robocopy "C:\...\...\...\long\path" "C:\DeleteMe" "FileName" /MOV
REM Note: this ^ can be called many times before...:

REM Finally, recursively delete the higher up DeleteMe directory.
rmdir /S /Q DeleteMe

Дивіться також: https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath

Для моїх потреб не було достатньо жодної альтернативної відповіді на 4 запитання. Ти вітаєш світ.


0

Нарешті я з’ясував, як це зробити через Powershell. Ось інструкції, які я дотримувався для роботи з Windows 7:

  1. Створіть нову папку під назвою NTFSSбезпека у папці C: \ Користувачі \ XXXX \ Документи \ WindowsPowerShell \ Модулі \ NTFSSбезпека , де XXXX - ваше ім’я користувача Windows. Приклад: якщо моє ім'я користувача було " aspnyc ", новою папкою буде C: \ Users \ aspnyc \ Documents \ WindowsPowerShell \ Modules \ NTFSSecurity .

  2. Завантажте пакет File System Security PowerShell Module - він повинен бути доступний у вигляді простого ZIP-файлу.

  3. Відкрийте консоль Powershell, запустіть Get-Module -ListAvailable і переконайтеся, що NTFSSecurity з’являється десь у списку зареєстрованих модулів.
  4. На консолі Powershell запустіть імпорт-модуль NTFSSecurity .
  5. На консолі Powershell запустіть Remove-Item2 "YYYY" -Рекурс , де YYYY - шлях Windows до папки, яку ви хочете рекурсивно видалити (наприклад, C: \ Potatoes \ Badgers \ FolderToDelete ).

0

Нарешті я дізнався, як це зробити з Powershell в Windows 10, де окремі імена файлів були занадто довгими. Ось такі кроки, які я виконав для роботи з Windows 10:

  1. Завантажте пакет File System Security PowerShell Module - він повинен бути доступний у вигляді простого ZIP-файлу.
  2. Витягніть Zip-файл як папку NTFSSбезпеки у каталозі C: ​​\ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ Модулі.
  3. Відкрийте консоль Powershell з адміністративним підняттям (aka Admin Mode) та запустіть Get-Module -ListAvailable і переконайтеся, що NTFSSecurity з’являється десь у списку зареєстрованих модулів.
  4. Запустіть Set-ExecutionPolicy Unrestricted, щоб обійти підписаний режим виконання. Ви повинні підтвердити цю дію за допомогою Y (s)
  5. Зрештою, CD в папку, яку ви хочете видалити.
  6. На консолі Powershell запустіть імпорт-модуль NTFSSecurity .
  7. У консолі Powershell запустіть Remove-Item2 "YYYY" -Запис , де YYYY - відносний або абсолютний шлях Windows до папки, яку ви хочете рекурсивно видалити (наприклад, C: \ Potatoes \ Badgers \ FolderToDelete ).
  8. Перевірте, чи спрацювало воно.
  9. Врешті-решт повернемося до підписаного режиму виконання за допомогою Set-ExecutionPolicy Restricted . Ви повинні підтвердити цю дію за допомогою Y (s).

0

Якщо у вас встановлено Bash на Ubuntu для Windows, ви можете перейти до батьківського каталогу у звичайному командному рядку та ввести:

bash -c "rm -rf dirname_here"

Що запускає bash, рекурсивно видаляє каталог з Linux, де немає обмежень на ім'я файлу, а потім виходить назад у вашу звичайну командну рядок.


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