क्या विंडोज में एक फ़ोल्डर को हटाने का एक तरीका है और इसके भीतर फाइलों की संख्या के लिए आनुपातिक समय नहीं है?
खैर, हाँ, विभाजन को स्वरूपित। मैं थोड़ा हैरान हूं कि पिछले 9 वर्षों में किसी ने सुझाव नहीं दिया।
यह बहुत कट्टरपंथी है, लेकिन अगर आप एक विशिष्ट फ़ोल्डर के लिए अक्सर ऐसा करने की आशा है, यह इसके लिए एक अलग विभाजन बनाने सार्थक हो सकता है।
यदि वह बहुत कट्टरपंथी है, तो दूसरे जवाब आपकी एकमात्र उम्मीद हैं। सर्वरफॉल्ट पर क्यों एक अच्छी व्याख्या है । यह linux और XFS फाइलसिस्टम के लिए है, लेकिन यहाँ एक ही तर्क लागू होता है। आप बिल्ड-इन OS फ़ंक्शन पर बहुत सुधार नहीं कर सकते।
हालाँकि, यदि आप उन सभी फ़ाइलों के पथ को जानते हैं जिन्हें आप हटाना चाहते हैं, तो आप डायरेक्ट कॉन्टेंट को कॉल करने वाली कॉल को बचा सकते हैं और कुछ ओवरहेड को बचाते हुए सीधे कॉल हटा सकते हैं। फिर भी फ़ाइलों की संख्या हालांकि के लिए आनुपातिक।
व्यक्तिगत रूप से, मैं खुद को यह सुनिश्चित करने के लिए प्रगति रिपोर्ट से कुछ पसंद करता हूं कि कार्यक्रम मर नहीं गया। इसलिए मुझे अजगर के माध्यम से सामान हटाना पसंद है। उदाहरण के लिए, यदि सभी फाइलें उप-निर्देशिका के बिना एक निर्देशिका में हैं:
import tqdm
import sys
import os
location = sys.argv[1]
directory = os.fsencode(location)
with os.scandir(directory) as it:
for dir_entry in tqdm.tqdm(it):
try:
os.remove(dir_entry.path)
except OSError:
pass # was not a file
250 फ़ाइलों के बारे में यह हटाए गए / मेरी 12 साल की SEAGATE ST3250620NS पर है। मुझे लगता है कि यह आपके ड्राइव पर बहुत तेज होगा।
हालांकि, इस बिंदु पर यह सिर्फ सूक्ष्म अनुकूलन है, तो बहुत ज्यादा काम नहीं चलेगा जब तक आप एक निर्देशिका में फ़ाइलों के लाखों लोगों की है। (मेरी तरह, योग्य, मैंने डी क्या किया है :)