सामान्य हटाने के लिए बहुत लंबे समय तक पथ / नामों के साथ निर्देशिकाओं को कैसे हटाएं


380

लगता है कि जब हटाने की कोशिश की जा रही थी, तो फ़ाइल नाम पर विंडोज की एक लंबी सीमा होती है, हालांकि यह उन फ़ाइलों को बनने से नहीं रोकेगा।

हमारी निर्माण प्रक्रिया कई अस्थायी फ़ाइलें (कई WSDL का निर्माण बंद) बनाती है जो इस सीमा से दूर चलती हैं। हमारी चींटी स्क्रिप्ट किसी तरह से साफ करते समय उन्हें हटाने में सक्षम होती है, लेकिन कभी-कभी मुझे वास्तव में चींटी से पूरी तरह से साफ किए बिना workarea निर्देशिका (जहां सभी अस्थायी फाइलें जाती हैं) को हटाने की आवश्यकता होती है।

यह इस प्रश्न की समान त्रुटियां हैं , लेकिन वहां के जवाब मेरे लिए वास्तव में काम नहीं करते हैं क्योंकि मैं एक निर्देशिका के साथ काम कर रहा हूं, एक फाइल नहीं, और मुझे हमेशा नहीं पता है कि विशिष्ट फाइलें या उपनिर्देशिकाएं समस्या का कारण बन रही हैं। और मैं वास्तव में उन्हें हटाने के लिए किसी भी मैनुअल प्रक्रिया (एकल कमांड को ट्रिगर करने के अलावा) से बचने की कोशिश कर रहा हूं।

यदि मैं एक्सप्लोरर से निर्देशिका को हटाने की कोशिश करता हूं तो मुझे त्रुटि मिलती है

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

पावरशेल Remove-Itemमें कोशिश करने से निम्नलिखित त्रुटि होती है:

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
मुझे इस प्रश्न को पोस्ट करने से ठीक पहले समाधान मिल गया था, लेकिन चूंकि अन्य लोग इसमें भाग सकते हैं इसलिए मैंने इसे पोस्ट करने का निर्णय लिया ताकि वे उस समाधान को पा सकें जो मैंने चलाया था।
हर्म्स

ओह, मुझे पता है, लेकिन आम तौर पर जब मैं इस तरह की चीजें करता हूं तो मैं "अनुत्तरित" सवाल को थोड़ी देर के लिए छोड़ देता हूं कि क्या किसी और के पास बेहतर समाधान है।
हर्मिस

द्वारा सुदूर : सरल समाधान youtube.com/watch?v=qQTyTprFAOg
Taw

Ubuntuया किसी अन्य का उपयोग करके Linux Bootable CDहम अपने कंप्यूटर को Ubuntuया किसी अन्य OS को अस्थायी रूप से बूट कर सकते हैं। तब हम फ़ोल्डर का चयन कर सकते हैं और हम इसे आसानी से हटा सकते हैं।
केलुम प्रियदर्शनी

1
इस पुराने सवाल के कुछ दिलचस्प जवाब भी हैं: superuser.com/questions/45697/…
AdamV

जवाबों:


421

उन्हें हटाने के लिए 7-ज़िप फ़ाइल प्रबंधक का उपयोग करें ।

यदि आपको अभी भी परेशानी हो रही है, तो सुनिश्चित करें कि आप 7-ज़िप फ़ाइल प्रबंधक के अंदर Shift+ का उपयोग Deleteकरते हैं। अन्यथा, विंडोज उन्हें रीसायकल बिन में ले जाने की कोशिश करता है (जो फिर से विफल हो जाएगा)।


5
धन्यवाद - यह एक dir के पेड़ से छुटकारा पा गया जो थोड़ा पीछे चला गया और डेल / rmdir / rm / एक्सप्लोरर के लिए बहुत गहरा था
मार्टिन बेकेट

63
शिफ्ट + डेल - 7zip का उपयोग करके महान काम किया, रीसायकल बिन में लंबी-पथ वाली फ़ाइलों को नहीं भेज सका ....
cori

66
+1 7zip। आपको फ़ोल्डर में नेविगेट करना होगा, और shift + Del@cori की तरह उपयोग करना होगा । यदि आप Deleteसंदर्भ मेनू से विकल्प का चयन करते हैं , तो यह WILl विफल हो जाता है। shift + Delयह!
उरदा

8
7zip ने win7 64 के लिए काम नहीं किया, इसलिए linux ने किया।
एरिक फ्राइसन

13
मैं इसे बढ़ाता हूं क्योंकि 7zip के साथ आप एक फ़ोल्डर को भी हटा सकते हैं, जिसमें लंबे समय से नेस्टेड फ़ोल्डर होते हैं। एक नोड_मॉडल फ़ोल्डर के साथ मेरी समस्या थी जिसमें निहित फ़ोल्डर का बकवास टन था और मैं इसे हटाने में सक्षम नहीं था। बेस फ़ोल्डर से 7zip त्रुटिपूर्ण रूप से तय किया गया। +1
ग्रबेर

310

यहां किसी भी अन्य (मुक्त) उत्तर ने मेरे लिए काम नहीं किया, लेकिन मुझे एक और साइट पर मिला:

rimraf <dir>

rimraf एक Node.js पैकेज है, इसलिए आपको Node.js को स्थापित करना होगा जिसमें npm शामिल हैं । तब आप चला सकते हैं:

npm install -g rimraf

फिर आप rimrafकमांड लाइन से चला सकते हैं ।

मुझे यह समाधान मिला क्योंकि जिस तरह से यह निर्भरता के घोंसले के कारण एनपीएम खुद इस समस्या का कारण था।

वैसे, rimrafUNIX कमांड से इसका नाम मिलता है rm -rf, जो फ़ाइलों और फ़ोल्डरों को पुन: हटा देता है।


7
कई तरह से कोशिश की। यह पूरी तरह से काम करता है!
डकएग

2
सभी का सबसे अच्छा जवाब :) हाँ इसकी आसान ब्यास
अल-मोताफर

2
यह स्वीकृत उत्तर होना चाहिए।
NINCOMPOOP

13
आपका समाधान काम करता है लेकिन यह इतना f ## k-up है कि मुझे नोड js मॉड्यूल फ़ोल्डर को हटाने के लिए एक नोड js मॉड्यूल का उपयोग करना होगा ... मैं अब इस ग्रह पर नहीं रहना चाहता
Benoit P

4
नोड ने मेरे लिए पहली जगह में समस्या पैदा की ... दिलचस्प ... ताकि उनके पास एक समाधान भी हो।
एरिक जे।

141

नहीं है किसी भी प्रोग्राम स्थापित करने की आवश्यकता इस मुद्दे को सुलझाने के लिए।

robocopy2006 में लॉन्च किए गए विंडोज विस्टा के बाद से यह समस्या आसानी से हल हो गई है।

उदाहरण के लिए, rmdir /S /Q <dir>कुछ मामलों में विफल होने की सूचना दी गई है। 7zip या किसी अन्य 3rd पार्टी टूल का उपयोग करने की कोई आवश्यकता नहीं है। पॉवरशेल एक ओवरकिल है। साइगविन काम कर सकता है, लेकिन आप इसे स्थापित नहीं कर सकते। तो, चलो ध्यान केंद्रित करते हैंrobocopy

विचार करना है

  1. robocopyकॉपी + अद्यतन करने के लिए उपयोग करें
  2. एक नए खाली फ़ोल्डर से
  3. वह फ़ोल्डर जिसे आप हटाना चाहते हैं, लक्ष्य।

निष्पादित करने के बाद robocopy, लक्ष्य निर्देशिका खाली हो जाएगी।

ये निर्देश कमांड लाइन के लिए हैं। बस विंडोज में सर्च खोलें, cmdएंटर टाइप करें और हिट करें।

मान लीजिए कि विलोपन का लक्ष्य है:

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

हम अनुसरण के रूप में आगे बढ़ते हैं:

  1. पहले एक खाली निर्देशिका बनाएं, फाई 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
    

    एक एक्सप्लोरर विंडो से फ़ोल्डर को खींचकर और टर्मिनल / सेमी विंडो में ड्रॉप करके।

सावधान रहें : हटाई गई फ़ाइलें कचरा फ़ोल्डर में नहीं जाएंगी! हटाए जाने के बाद, फ़ाइलें पुनर्प्राप्त नहीं की जा सकतीं।

( BVLANGEN द्वारा "पाथ बहुत लंबा? रोबोकॉपी का उपयोग करें" से लिया गया )

पुनश्च: मुझे लगता है कि यह जवाब यहाँ था, कम व्यावहारिक रूप से। Windows में फ़ाइल को बहुत लंबे फ़ाइल नाम से कैसे हटाएं? [डुप्लिकेट]

बेनोइट ने कहा:

सभी फ़ाइलों से छुटकारा पाने के लिए आपको एक से अधिक बार इस प्रक्रिया से गुजरना पड़ सकता है।


11
थैंक यू गुड सर !! यह स्वीकृत उत्तर होना चाहिए क्योंकि अन्य सभी ने या तो काम नहीं किया या तीसरे पक्ष के उपकरण की आवश्यकता नहीं की । :)
मिकायड

यह पूरी तरह से काम करता है ... कुछ भी स्थापित करने की आवश्यकता नहीं है (जहां तक ​​मुझे पता है) और यह जल्दी है। यह स्वीकृत उत्तर होना चाहिए!
ksumarine

1
यह डायरेक्टरी ट्री के कुछ (या सभी) को "c: \ deletefolder" (लक्ष्य dir) के अंतर्गत रखता है। वैसे भी, मेरे लिए पलक झपकते ही सब कुछ डिलीट कर दिया (लगता है कि फाइलें छोटी थीं) और मुझे बस मैन्युअल रूप से <Del> "c: \ deletefolder" करना था, बच्चे की डायरियों को बिना किसी समस्या के हटा दिया गया। एक जादू की तरह काम किया। +1, स्वीकृत उत्तर होना चाहिए! :)
वृद्ध।

@ पुराना, लेकिन क्या "डिलीट फोल्डर" पहले मौजूद था? अन्यथा, मुझे लगता है कि यह खाली होना चाहिए अगर यह एक नई निर्देशिका थी। नहीं तो गड़बड़ है। मैं "rmdir deletefolder" के लिए एक अंतिम चरण जोड़ सकता हूं।
हेक्टरपाल

1
अत्यधिक पुनरावर्ती निर्देशिकाओं के साथ काम करते समय, यह विकल्प 7zip की तुलना में बहुत धीमा है। 20 मिनट इंतजार करने के बाद, मैंने उन्हें बेंचमार्क किया और 7zip का एहसास कराया, हालांकि यह नहीं दिखा कि प्रगति 50x तेज चल रही थी।
एंडी गेज

84

मेरा मानना ​​है कि मुझे चीजों को हटाने का एक तरीका मिल गया है cmd। मूल रूप से मैंने delकमांड की कोशिश की , लेकिन यह काम नहीं किया। तब मुझे याद आया rmdir। निम्न कार्य करना:

rmdir /S /Q <dir>

लगता है काम किया है।


105
मेरे लिए काम नहीं किया। :(
एंड्रयू अरनॉट

rmdir चलाने का प्रयास करने से पहले cmd में ड्रॉप करना याद रखें।
ब्रायनपीरिस

8
उन लोगों के लिए जो इस समाधान का उपयोग करने में असमर्थ हैं, मेरे पास एक वैकल्पिक समाधान है जो मेरे लिए काम किया है (बहुत लंबा पथ / फ़ाइल नाम के साथ): पथ को छोटा करने के लिए फ़ाइल (s) / निर्देशिका को C: \ में ले जाएं, फिर वहां से हटा दें।
एंडर्स सैंडबर्ग नॉर्डबो सिप

6
निर्देशिकाओं के लिए संभव है कि यह समाधान काम नहीं करेगा, 7-ज़िप हटा सकता है। मेरे साथ बस यही हुआ था।
सैमस्टफेन्स

2
यह समाधान असंगत परिणाम प्राप्त कर रहा है। कृपया, इसे मत देना।
हेक्टरपाल

29

इस समस्या के होने पर मैंने जो टूल का उपयोग किया था, वह FastCopy था । मैंने ड्रॉपडाउन से डिलीट ऑल का चयन किया, उस निर्देशिका का चयन किया जिसे मैं हटाना चाहता था, और डिलीट ऑल पर क्लिक किया ।

FastCopy हटाएँ डायलॉग स्क्रीनशॉट

FastCopy पोर्टेबल है (कोई आवश्यक स्थापित नहीं है), और 32 बिट और 64 बिट संस्करण उपलब्ध हैं।


3
यदि आप एक कमांड-लाइन टूल की तलाश कर रहे हैं, तो आप GitHub ( github.com/epsitec/Tools-RecursiveDelete ) पर प्रकाशित एक छोटे उपकरण का उपयोग कर सकते हैं ।
पियरे अरनौद

मेरे पास नेस्टेड फ़ाइल / फ़ोल्डर का एक पुनरावर्ती जनरेट सेट था। यह काम करने का एकमात्र समाधान था
पियरलिगी

2
यह मेरे लिए तब काम आया, जब कमांड लाइन सामान विफल हो गया, 7zip प्रयास विफल हो गया। और यहां तक ​​कि Microsoft समर्थन को भी रोक दिया गया था!
किट रामोस

यहाँ भी - मैं 7zip के साथ फ़ाइलों को हटाने के लिए शुरू किया, लेकिन यह भी बहुत अजीब काम किया और मैं वास्तव में इसे हटाने के लिए एक पंक्ति में कई बार Shift + Delere था, लेकिन फिर मैंने इस उपकरण की कोशिश की, और एक आकर्षण की तरह काम किया । सभी फाइलों से छुटकारा पाने के लिए इसे दो बार लॉन्च किया। धन्यवाद!
आर्टानिस

धन्यवाद, मेरे लिए और साथ ही एकमात्र काम समाधान, महान !!!!
टिम

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विंडोज एक्सप्लोरर या कमांड प्रॉम्प्ट में आसानी से हटा सकते हैं। अस्थायी ड्राइव अक्षर को हटाने के लिए अन्य नाम कमांड का उपयोग करते हैं

subst x: /d

मैंने अन्य सभी उत्तरों (अन्य समान प्रश्नों के उत्तर सहित) की कोशिश की और यह एकमात्र ऐसा था जिसने मेरे लिए काम करना समाप्त कर दिया। और यह अब तक का सबसे तेज था।
ग्लेननरू

1
यह अब तक का सबसे अच्छा जवाब है: सरल, अंतर्निहित विशेषताएं, रजिस्ट्री के साथ कोई गड़बड़ दौर नहीं। स्वीकृत उत्तर होना चाहिए।
केविन रोच

आसानी से सबसे साफ और सबसे सरल विधि, धन्यवाद केनेथ।
सेठ

उह यह जवाब मुझे डराता है क्योंकि मेरे पास वास्तव में एक एक्स: ड्राइव है। यहां पर्याप्त जानकारी नहीं है और मैं लोगों को आगे के स्पष्टीकरण के बिना इसका पालन करने की सलाह नहीं देता।
क्षोदिनेजा

25

साइग्विन rm -rfलंबे रास्तों पर अच्छी तरह से काम करता है!


3
Cygwin ने मेरे लिए पूरी तरह से काम किया! बस एक -rm -rf और सभी फाइलें हटा दी गईं।
रणहिरु जूडे कोरे

3
जीएनयू बैश के तहत मेरे लिए भी काम किया, संस्करण 4.1.10 (4) -release
rjzii

2
Git Bash कमांड विंडो से रन करते समय बढ़िया काम किया। मैंने उसके लिए GitGui स्थापित किया था।

22

बस नीचे चलाकर कमांड में पॉवर्सशेल से ड्रॉप करें:

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

3
"निर्देशिका खाली नहीं है"। उफ़। ओपी एक गैर-खाली फ़ोल्डर को हटाना चाहता है।
leye0

यह @herms के उत्तर के लिए अलग कैसे है?
bigbadmouse

18

डेंट्रासी का समाधान मेरे लिए सबसे अच्छा काम है, लेकिन मैं एक विशिष्ट स्तर के उत्तर में विशिष्ट चरणों को पोस्ट करना चाहता था।

  1. 7zip के नवीनतम स्थिर बिल्ड को डाउनलोड और इंस्टॉल करें ।
  2. 7zip फ़ाइल प्रबंधक ( 7zfm.exe ) चलाएँ ।
  3. 7zip फ़ाइल मैनेजर में, नेविगेट करें ताकि आप उस फ़ोल्डर का नाम देख सकें जिसे आप हटाना चाहते हैं (यानी आप मूल फ़ोल्डर में हैं)।
  4. Shift बटन को दबाए रखें।
  5. " हटाएं " बटन पर क्लिक करें, या तो अपने कीबोर्ड पर या 7zip फ़ाइल प्रबंधक टूलबार में; सुनिश्चित करें कि आप अभी भी Shift कुंजी दबाए हुए हैं
  6. " ओके " बटन पर क्लिक करें; सुनिश्चित करें कि आप अभी भी Shift कुंजी दबाए हुए हैं

अच्छा प्रयास है, लेकिन फिर भी मेरे लिए 10 के के पुनरावर्ती फ़ोल्डर्स के साथ काम नहीं किया। केवल रिमरफ ने काम किया।
जूलियन नाइट

@JulianKnight: हाँ, इस दृष्टिकोण ने मेरे लिए 100% समय तक काम नहीं किया। मैं सिर्फ इसका उल्लेख करना चाहता था क्योंकि यह अधिक सीधी प्रक्रियाओं में से था, और यह कम से कम समय का काम करता था। केवल एक चीज जो मैंने पाया है कि 100% समय काम कर चुका है वह है Powershell + NTFSSecurity मॉड्यूल स्क्रिप्ट अप्रोच, जो नीचे वर्णित है। IIRC rimraf कॉल करने में विफल रहा, जो है कि मैं पहली बार इस गड़बड़ में कैसे आया। विवरण के लिए यह Node.js धागा देखें: github.com/nodejs/node-v0.x-archive/issues/…
मास डॉट नेट

हां, हमेशा की तरह समस्याएं होंगी। वास्तव में यह Arduino IDE का लाइब्रेरी इंस्टॉलेशन कोड था, जिसने मुझे (जावा) में किया, मैंने गलती से लाइब्रेरी वाले फ़ोल्डर को एक लाइब्रेरी के रूप में स्थापित करने के लिए एक फ़ोल्डर के रूप में चयन कर लिया, जहां से वह चला गया था! जैसे ही मुझे एहसास हुआ कि मैंने इस प्रक्रिया को मार दिया है, लेकिन पहले से ही 10 k के फ़ोल्डरों का था (लानत i7 / SSD!) एनपीएम की अगली मुख्य रिलीज नोड के लिए कई गहन लाइब्रेरी इंस्टॉलेशन मुद्दों को हल करने में मदद करने के लिए है, क्योंकि निर्भरता को पूरा किया जाना चाहिए। एक बहुत चापलूसी संरचना। फिर भी मुझे खुशी है कि किसी ने मुझे रिमफ़र पर रखा - आसान और मुफ्त।
जूलियन नाइट

@JulianKnight - हाँ, एक या दो दिन पहले किसी ने मुझसे कहा था कि npm3 को गहराई से नेस्टेड निर्भरता फ़ोल्डर संरचनाओं को रोकने के द्वारा इन समस्याओं को कम करने में मदद करनी चाहिए।
मास डॉट नेट

पता नहीं कि यह "रोकता है" लेकिन यह नेस्टेड निर्भरता को अधिक समझदारी से व्यवहार करता है ताकि यदि आपके मुख्य ऐप को लाइब्रेरी एक्स v1.0 की आवश्यकता हो और लाइब्रेरी वाई को जेड की आवश्यकता हो, जिसमें एक्स v1.0 की भी आवश्यकता हो, तो शीर्ष स्तर के पुस्तकालय का उपयोग किया जाएगा। वर्तमान में Z एक्स का अपना संस्करण स्थापित करेगा।
जूलियन नाइट

11

मौजूदा उत्तरों में पहले से ही दो बातों का उल्लेख नहीं है।

  1. आप लंबे रास्तों तक पहुँचने के लिए विस्तारित लंबाई पथ उपसर्ग का उपयोग कर सकते हैं
  2. विंडोज 10 के साथ, आप सामान्य उपयोग के लिए लंबे पथ समर्थन को सक्षम कर सकते हैं - हालांकि, ध्यान दें कि सभी एप्लिकेशन लंबे पथ के साथ काम नहीं करेंगे, आपको किसी अन्य सॉफ़्टवेयर का परीक्षण करना चाहिए। केवल उचित प्रकट प्रविष्टि वाला सॉफ्टवेयर ही इसका उपयोग करने में सक्षम होगा।

लंबी पथ उपसर्ग

विंडोज एपीआई में एक विशेष फ़ंक्शन होता है जो यूनिकोड पथ के नामों को 32k वर्णों तक लंबा (प्रत्येक तत्व लंबाई में 255 वर्णों तक) का समर्थन करता है।

इसे अक्सर गलती से UNC नामकरण के रूप में संदर्भित किया जाता है लेकिन यह संबंधित नहीं है।

उपसर्ग लंबे समय तक यूनिकोड पथ का उपयोग करने के लिए एपीआई को बताने के लिए निम्नानुसार है \\?\:

\\?\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

लंबा पथ समर्थन

यह एक विकल्प है जो विंडोज 10 के हाल के संस्करणों में जोड़ा गया है। यह लिखने के समय नहीं है, डिफ़ॉल्ट रूप से सक्रिय है क्योंकि इसे आवश्यक एप्लिकेशन समर्थन की आवश्यकता होती है। दिलचस्प बात यह है कि पावरशेल में निर्मित समर्थन है, इसलिए इस विकल्प को सक्षम करने से पॉवरशेल स्क्रिप्ट में सीधे लंबे रास्ते का उपयोग किया जा सकेगा।

यदि आप उस के साथ 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 मानक लंबे रास्तों तक पहुंच प्राप्त होगी। इसमें विंडोज स्टोर ऐप शामिल होना चाहिए।

संदर्भ: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/

UPDATE 2017-04-09

@maoizm ने ऊपर रजिस्ट्री कुंजी के साथ एक मुद्दा बताया ताकि मैंने कुछ और खुदाई की । ऐसा लगता है कि अब आप सिस्टम कुंजी के साथ लंबे फ़ाइल नाम का समर्थन सेट कर सकते हैं:

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

यह अभी भी केवल उन अनुप्रयोगों के लिए काम करता है जो विशेष रूप से इसे उपयोग करने के लिए सेट किए गए हैं (एप्लिकेशन के मैनिफ़ैक्ज़ में प्रविष्टि की आवश्यकता है)

आपको यह भी ध्यान रखना चाहिए कि आप इस विधि के सापेक्ष पथ नामों का उपयोग नहीं कर सकते हैं।


{48981759-12F2-42A6-A048-028B3973495F}Machineप्रत्येक कंप्यूटर पर रजिस्ट्री पथ का हिस्सा अलग होगा - यह सभी के लिए स्पष्ट नहीं हो सकता है
maoizm

1
@maoizm - अच्छा बिंदु, उस पर प्रकाश डालने के लिए धन्यवाद। कृपया W10 वर्षगांठ अद्यतन या बाद का उपयोग करते हुए एक विकल्प के लिए मेरा अद्यतन देखें।
जूलियन नाइट

मैं एक पुस्तकालय लिख रहा हूं, जिसे फाउंडेशनियो कहा जाता है, और मैं लंबे रास्ते को डिफ़ॉल्ट बनाने की कोशिश कर रहा हूं, क्या कोई ऐसा फ़ंक्शन है जिसे मैं कॉल कर सकता हूं या मैक्रो मैं अपने पुस्तकालय के किसी भी उपयोगकर्ता के लिए स्वचालित रूप से सक्षम लंबे पथ समर्थन बनाने के लिए सेट कर सकता हूं?
मार्कस जे

हाय माक्र्स, क्या यह एक देशी विंडोज लाइब्रेरी है? यदि ऐसा है, तो .NET के पास प्रासंगिक Windows API के भाग के रूप में पहले से मौजूद आवश्यक समर्थन है - क्षमा करें कि मुझे विवरण नहीं पता है क्योंकि मैं .NET या Win API प्रोग्रामर नहीं हूं, लेकिन विवरण MSDN पर खोज योग्य होना चाहिए।
जुलियन नाइट

8

मुझे cmd समाधान पसंद है। हालाँकि मैं एक और वर्कअराउंड शेयर करना चाहता हूं जो सिर्फ एक्सप्लोरर में भी काम करता है: डिलीट करने से पहले पैरेंट फोल्डर के नाम को छोटा करने की कोशिश करें: छोटे नाम रास्ते को छोटा कर देंगे। कहो, आपके पास फ़ोल्डर की यह ट्री संरचना है:

सी:\

.. परियोजनाएं

.. .. वसंत 2014 के दौरान कुछ भयानक परियोजना

.. .. .. शहर में एक पार्क में कुछ गतिविधि एक शुक्रवार

.. .. .. .. ब्ला ब्ला ब्ला ब्ला ब्ला ब्ला ब्ला ब्ला ब्ला

.. .. .. .. .. लंबे नाम वाली वास्तविक फाइलें भी

इस स्थिति में आप फ़ोल्डर्स को हटा नहीं सकते, आप फ़ाइलों को न तो हटा सकते हैं और न ही नाम बदल सकते हैं। यदि आप संपूर्ण फ़ोल्डर संरचना या उसके भाग को निकालना चाहते हैं, तो आप अस्थायी रूप से मूल फ़ोल्डर का नाम बदल सकते हैं और पथ को छोटा कर सकते हैं, और फिर फ़ोल्डर को निकाल सकते हैं। नाम सिर्फ अक्षर हो सकते हैं:

सी:\

.. परियोजनाएं

.. .. एक्स

.. .. .. य

.. .. .. .. z

.. .. .. .. .. लंबे नाम वाली वास्तविक फाइलें भी

मेरे मामले में मैं सिर्फ कई सबफ़ोल्डर्स और फ़ाइलों के साथ पूरे फ़ोल्डर को निकालना चाहता था। इसलिए मुझे फ़ोल्डर के नामों की परवाह नहीं थी।


1
मैंने एक छोटा सा उपकरण लिखा है जो सिर्फ इतना करता है और इसे GitHub तक डालता है। github.com/epsitec/Tools-RecursiveDelete
पियरे अरनौद

1
सभी कमांड या Shift + DEL मेरे लिए काम नहीं करता है, लेकिन यह करता है।
larkee

वास्तव में काम नहीं करता है जब आपके पास नेस्टेड फ़ोल्डर के 10 k है
जूलियन नाइट

यह भी काम नहीं करता है यदि किसी एक फ़ोल्डर में वास्तव में लंबा नाम है (आप अपमानजनक फ़ोल्डर का नाम नहीं बदल सकते हैं)।
Aucuparia 12

7

7-ज़िप समाधान महान काम करता है। एक अन्य विकल्प यदि आपके पास स्थापित है तो बैश खोल खोलना और उपयोग करना है:

rm -f

(या rm -rfफ़ोल्डर्स के लिए)


1
Uninitiated के लिए कृपया बताएं कि आप विंडोज़ में "बैश शेल कैसे खोलें"?
OMY

1
@ आप को स्थापित होने की आवश्यकता है। फिर स्टार्ट मेन्यू से आप git bash खोल सकते हैं या अगर आपने git इंस्टॉल करने के दौरान शेल एक्सटेंशन का विकल्प चुना है तो आप फ़ोल्डर में या उसके ऊपर राइट क्लिक कर सकते हैंGit Bash Here
यूज़र

4

मैं कुल कमांडर (शेयरवेयर का सुझाव देता हूं , लेकिन केवल न्यूनतम नाग प्रारंभ स्क्रीन के साथ परीक्षण अवधि के बाद काम करता रहता है)। इस तरह से मैं बहुत लंबे फ़ाइल नाम समस्याओं को हल करता हूं ।


1
भगवान का शुक्र है कि मैंने यह पाया। एक नोड_मॉडल फ़ोल्डर को हटाने के मुद्दे होने के कारण यह निर्देशिका को मूर्खतापूर्ण रूप से घोंसला बनाने का फैसला करता है।
एलियास

खैर, @ आला, कुल कमांडर उस मुद्दे का पता लगाना आसान बनाता है, कम से कम मेरे लिए। ऐसी समस्या की पहचान करने के बाद, chkdskइसे हल करना चाहिए।
सोपालाजो डे एरियेरेज़

संस्करण 7.0 काम नहीं करता है, यह एक त्रुटि संदेश दिखाता है और व्यवस्थापक के रूप में संचालन करने का सुझाव देता है, जो कि विफल भी होता है।
izogfif

@izogfif: आज के लिए नवीनतम संस्करण 8.52a है। मैं यह एक कोशिश करूँगा। आप अपने त्रुटि संदेश के बारे में ब्योरा नहीं देते हैं, लेकिन आपके पास संग्रह संरचना पर कुछ असंगतता हो सकती है जिसे "chkdsk c: / f" (ड्राइव C :) संभालने के साथ कम से कम (NTFS के लिए) हल होना चाहिए।
सोपालाजो डी एरियेरेज़

2

आप उनके समतुल्य लघु नाम का उपयोग करके उन्हें हटा भी सकते हैं। dir /xआपको उन्हें दिखाएगा।


2

मैंने एक साधारण जावा प्रोग्राम बनाया जो फ़ाइलों को हटाने के लिए रोबोकॉपी का उपयोग करता है। सुराही एक भगोड़ा है। अतिरिक्त आउटपुट के लिए इसे cmd लाइन से चलाएं।

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


2
और अगर आप जावा का उपयोग नहीं करना चाहते हैं, तो आप इस उपकरण का उपयोग कर सकते हैं जो मैंने .NET ( github.com/epsitec/Tools-RecursiveDelete ) का उपयोग करके लिखा है ।
पियरे अरनौद

@PierreArnaud महान उपयोगिता। मुझे कमांड लाइन स्वचालन के लिए कुछ इस तरह की आवश्यकता थी। @ कैमहार्ट यू से भी अच्छा काम! धन्यवाद दोस्तों!
अमितक

1

मैंने अन्य सभी उत्तरों की कोशिश की है, लेकिन उन्होंने काम नहीं किया (मेरे लिए कम से कम)।

मैं बहरा हो गया और बहुत अच्छी तरह से और बहुत जल्दी काम किया!

यह परीक्षण 3 कार्यों / 15 दिनों तक सीमित है, लेकिन यह प्रयोग करने योग्य है यदि आप केवल कुछ फ़ोल्डर / फ़ाइलें हटाना चाहते हैं:


1

इस कार्य के लिए बड़े निर्देशिकाएँ भी डिज़ाइन किए गए हैं। यहां छवि विवरण दर्ज करें

  • डाउनलोड
  • मौजूदा निर्देशिकाओं को हटाने के लिए RemoveDirectoryW के साथ एक पुनरावर्ती कॉल का उपयोग करता है
  • नई बनाई गई निर्देशिकाओं के लिए स्वयं की फ़ाइल रिपोजिटरी का उपयोग करता है
  • फाइलों को निर्देशिका निर्देशिका को हटाने से पहले ले जाया जा सकता है।
  • स्पीडी, हालांकि डायरेक्टरी के शीर्ष पर नेविगेट करना नेस्टेड डायरेक्टरी पर एक क्लिक है
  • Windows XP (SP3) और ऊपर
  • बिना इंस्टॉलर के बिना अनवांटेड अनवांटेड कोड, इसलिए संभव हो तो स्मार्टस्क्रीन चेतावनी जब स्पेयर फोल्डर जैसे डेस्कटॉप से ​​चलती हो।

CodeProject पर अधिक जानकारी ।


कृपया पढ़ें कि मैं कुछ युक्तियों के लिए सॉफ्टवेयर की सिफारिश कैसे करूं कि आपको सॉफ्टवेयर की सिफारिश करने के बारे में कैसे जाना चाहिए। आपको कम से कम एक लिंक प्रदान करना चाहिए, सॉफ़्टवेयर के बारे में कुछ अतिरिक्त जानकारी और प्रश्न में समस्या को हल करने के लिए इसका उपयोग कैसे किया जा सकता है।
DavidPostill

@ डेविड: बेहतर है? लिंक बहुत उपयोगी था, धन्यवाद।
लॉरी स्टर्न

1

मैंने विंडोज 10 में इस मुद्दे का सामना किया और यह आसान समाधान पाया।

  1. अपने फ़ोल्डर ट्री के बहुत कम गहराई पर जाएं।
  2. एड्रेस बार का उपयोग करके पेड़ के बीच से कहीं से एक फ़ोल्डर को खींचें और ड्रॉप करें।
  3. जैसा कि मेरी छवि में लाल बॉक्स को हरे बॉक्स में खींचें और छोड़ें। (इस मामले में पथ कम है, लेकिन लंबे रास्तों के लिए भी यह काम करता है)
  4. तब आपका मार्ग छोटा हो जाता है और डिलीट की का उपयोग करके सामान्य रूप से डिलीट हो जाता है।

यहां छवि विवरण दर्ज करें


1

यहाँ (फ़ाइलों के लिए) सही उत्तर मिला। विंडोज 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

मुझे आखिरकार पता चला कि पॉवर्सशेल के माध्यम से यह कैसे करना है। विंडोज 7 पर काम करने के लिए मैंने जो निर्देश दिए हैं, वे यहां दिए गए हैं:

  1. कहा जाता है एक नया फ़ोल्डर बनाएँ NTFSSecurity में फ़ोल्डर C: \ Users \ XXXX \ दस्तावेज़ \ WindowsPowerShell \ मॉड्यूल \ NTFSSecurity , जहां XXXX आपका Windows उपयोगकर्ता नाम है। उदाहरण: यदि मेरा उपयोगकर्ता नाम " aspnyc " था, तो नया फ़ोल्डर C: \ Users \ aspnyc \ Documents \ WindowsPowerShell \ Modules \ NTFSSecurity होगा

  2. फ़ाइल सिस्टम सुरक्षा पॉवरशेल मॉड्यूल पैकेज डाउनलोड करें - यह एक साधारण ज़िप फ़ाइल के रूप में उपलब्ध होना चाहिए।

  3. Powershell कंसोल खोलें, Get-Module -ListAvailable चलाएं और सुनिश्चित करें कि NTFSSecurity पंजीकृत मॉड्यूल की सूची में कहीं दिखाई दे।
  4. पॉवर्सशेल कंसोल में, आयात-मॉड्यूल NTFSSecurity चलाएँ
  5. पॉवर्सशेल कंसोल में, निकालें-Item2 "YYYY" -Recurse को चलाएं , जहां YYYY उस फ़ोल्डर का विंडोज पथ है जिसे आप पुनरावर्ती रूप से हटाना चाहते हैं (जैसे C: \ Potatoes \ Badgers \ FolderooDelete )।

0

मुझे अंततः पता चला कि विंडोज 10 पर पॉवर्सशेल के साथ यह कैसे करना है जहां व्यक्तिगत फाइलनाम बहुत लंबे थे। यहां विंडोज 10 पर काम करने के लिए मैंने जो कदम उठाए हैं, वे हैं:

  1. फ़ाइल सिस्टम सुरक्षा पॉवरशेल मॉड्यूल पैकेज डाउनलोड करें - यह एक साधारण ज़िप फ़ाइल के रूप में उपलब्ध होना चाहिए।
  2. निर्देशिका C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ मॉड्यूल में एक फ़ोल्डर के रूप में ज़िप फ़ाइल निकालें।
  3. प्रशासनिक ऊंचाई (उर्फ एडमिन मोड) के साथ एक पॉवर्सशेल कंसोल खोलें और गेट-मॉड्यूल -ListAvailable चलाएं और सुनिश्चित करें कि NTFSSecurity पंजीकृत मॉड्यूल की सूची में कहीं दिखाई दे।
  4. हस्ताक्षरित निष्पादन मोड को बायपास करने के लिए सेट-एक्ज़ीक्यूशन पॉलीसी अप्रतिबंधित चलाएं । आपको इस क्रिया की पुष्टि Y के साथ करनी होगी
  5. अंततः उस फ़ोल्डर में सीडी जिसे आप हटाना चाहते हैं।
  6. पॉवर्सशेल कंसोल में, आयात-मॉड्यूल NTFSSecurity चलाएँ
  7. पॉवर्सशेल कंसोल में, निकालें-Item2 "YYYY" -Recurse को चलाएं , जहां YYYY उस फ़ोल्डर के सापेक्ष या पूर्ण Windows पथ है जिसे आप पुन: हटाना चाहते हैं (जैसे C: \ Potatoes \ Badgers's FolderToDelete )।
  8. अगर यह काम किया जाँच करें।
  9. अंततः सेट -एक्ज़ीक्यूशन के साथ हस्ताक्षरित निष्पादन मोड पर वापस लौटें । आपको वाई (एस) के साथ इस कार्रवाई की पुष्टि करनी होगी।

0

यदि आपके पास विंडोज पर उबंटू में बैश है, तो आप एक नियमित कमांड प्रॉम्प्ट में मूल निर्देशिका में सीडी और फिर टाइप कर सकते हैं:

bash -c "rm -rf dirname_here"

जो बैश को लॉन्च करता है, निर्देशिका को लिनक्स से हटाता है जहां कोई फ़ाइल नाम प्रतिबंध नहीं है, और फिर वापस अपने नियमित कमांड प्रॉम्प्ट पर निकलता है।


0

WinRAR में निर्देशिका पर नेविगेट करें, फ़ाइल का चयन करें, प्रेस करें F2, फ़ाइल को छोटे नाम पर नाम बदलें। फिर आप फ़ाइल को हमेशा की तरह हटा सकते हैं।

स्रोत: https://www.youtube.com/watch?v=qQTyTprFAOg

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.