উইন্ডোজে কোনও ফোল্ডার মুছে ফেলার এবং এর মধ্যে থাকা ফাইলের সংখ্যার সাথে আনুপাতিক সময় নেওয়ার কোনও উপায় আছে কি?
আচ্ছা, হ্যাঁ, পার্টিশনটি ফর্ম্যাট করুন। আমি কিছুটা বিস্মিত হয়েছি কেউ আগের 9 বছরেও পরামর্শ দেয়নি।
এটি বেশ কট্টরপন্থী, তবে আপনি যদি নির্দিষ্ট ফোল্ডারের জন্য ঘন ঘন এটি করার প্রত্যাশা করেন তবে এটির জন্য একটি পৃথক বিভাজন তৈরি করা সার্থক হতে পারে।
যদি এটি খুব মৌলবাদী হয় তবে অন্যান্য উত্তরগুলি আপনার একমাত্র আশা। সার্ভারফল্টে কেন রয়েছে তার একটি ভাল ব্যাখ্যা রয়েছে । এটি লিনাক্স এবং এক্সএফএস ফাইল সিস্টেমগুলির জন্য তবে একই যুক্তি এখানে প্রয়োগ হয়। বিল্ড-ইন ওএস ফাংশনগুলিতে আপনি বেশি উন্নতি করতে পারবেন না।
তবে, আপনি যদি মুছে ফেলতে চান এমন সমস্ত ফাইলের পাথগুলি জানেন, তবে আপনি যে ডিরেক্টরিগুলিতে ডিরেক্টরি বিষয়বস্তু এবং কল রিমুভাল তালিকাবদ্ধ করে কিছু ওভারহেড সঞ্চয় করে কলগুলিতে সংরক্ষণ করতে পারেন। এখনও ফাইল সংখ্যার সমানুপাতিক।
ব্যক্তিগতভাবে, আমি প্রোগ্রামটি মারা যায় নি তা নিশ্চিত করার জন্য আমি কিছু অগ্রগতি রিপোর্ট থেকে পছন্দ করি। সুতরাং আমি পাইথনের মাধ্যমে জিনিসগুলি মুছতে চাই। উদাহরণস্বরূপ, সমস্ত ফাইল যদি একটি ডিরেক্টরিতে থাকে তবে সাব-ডিরেক্টরি ছাড়াই:
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
এটি আমার 12 বছরের পুরানো SEAGATE ST3250620NS এ প্রায় 250 টি ফাইল / গুলি মুছে দেয়। আমি ধরে নিয়েছি এটি আপনার ড্রাইভে আরও দ্রুত হবে।
যাইহোক, এই মুহুর্তে এটি কেবল মাইক্রো-অপ্টিমাইজেশন, সুতরাং আপনার যদি একটি ডিরেক্টরিতে কয়েক মিলিয়ন ফাইল না থাকে তবে খুব বেশি কিছু করা যাবে না। (আমার মতো, হ্যাঁ, আমি কী করেছি ডি :)