কখনও কখনও আপনি যখন Windows এ একটি ফাইল মুছতে, পুনঃনামকরণ বা সরানোর চেষ্টা করেন, তখন আপনি একটি বার্তা দেখতে পারেন যে ফাইলটি ব্যস্ত/লক করা হয়েছে/অন্য প্রক্রিয়া দ্বারা ব্যবহৃত হয়েছে। সাধারণত ফাইলটি খোলা রাখে এমন প্রোগ্রামের নামটি ফাইল এক্সপ্লোরার বার্তা উইন্ডোতে দেখানো হয়। ফাইলটি আনলক করতে, প্রোগ্রামটি বন্ধ করার জন্য এটি যথেষ্ট। যাইহোক, এটি ঘটতে পারে যে একটি ফাইল বা একটি লাইব্রেরি একটি অজানা বা সিস্টেম প্রক্রিয়া দ্বারা ব্যবহৃত হয়। তারপর এটি আনলক করা কঠিন।
অনেক অ্যাপ এক্সক্লুসিভ মোডে ফাইল খোলে। একই সময়ে, ফাইলটি একটি ফাইল সিস্টেম দ্বারা লক করা হয় যা অন্যান্য অ্যাপ এবং প্রক্রিয়া থেকে ইনপুট-আউটপুট ক্রিয়াকলাপকে বাধা দেয়। আপনি অ্যাপটি বন্ধ করলে ফাইল লক রিলিজ হয়।
একটি ফাইল লক বার্তা ভিন্ন হতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত স্ক্রিনশট ফাইলের ধরন এবং এটি যে অ্যাপের সাথে যুক্ত তা দেখায়:
File/Folder in Use. The action can’t be completed because the file is open in another program. Close the folder or file and try again.
তাহলে আপনি সহজেই বুঝতে পারবেন কোন অ্যাপ ফাইলটি লক করেছে এবং বন্ধ করে দিয়েছে।
যাইহোক, কখনও কখনও আপনি একটি আরো আকর্ষণীয় বার্তা দেখতে পারেন যে একটি ফাইল একটি অজানা বা উইন্ডোজ সিস্টেম প্রক্রিয়া দ্বারা ব্যবহৃত হয়। এটি হয় একটি উইন্ডোজ প্রসেস বা সিস্টেমের বিশেষাধিকারগুলির সাথে কাজ করা অন্যান্য প্রক্রিয়া যেমন একটি অ্যান্টিভাইরাস অ্যাপ, একটি ব্যাকআপ এজেন্ট, একটি MSSQL ডাটাবেস, ইত্যাদি হতে পারে:
The action can’t be completed because the file is open in SYSTEM. Close the file and try again.
চলুন জেনে নেওয়ার চেষ্টা করি কোন প্রোগ্রাম, সার্ভিস বা উইন্ডোজ সিস্টেম প্রসেস কোন ফাইল ব্যবহার করছে, কিভাবে ফাইলটি আনলক করা যায় এবং প্যারেন্ট প্রসেস বন্ধ না করে রিলিজ করা যেতে পারে কিনা।
যদি আপনি একটি শেয়ার্ড নেটওয়ার্ক ফোল্ডারে একটি ফোল্ডার মুছতে না পারেন, তাহলে সমস্যাটি thumbs.db এর সাথে সম্পর্কিত হতে পারে যে ফোল্ডারে থাকা ফাইলগুলির থাম্বনেইল ক্যাশ রয়েছে বা ফাইলটি আপনার SMB ফাইল সার্ভারে অন্য ব্যবহারকারীর দ্বারা খোলা (লক করা হয়েছে)৷ফাইলটি আনলক করার সবচেয়ে সহজ উপায় হল এটি লক করা প্রক্রিয়াটি শেষ করা। কিন্তু এটা সবসময় সম্ভব হয় না, বিশেষ করে সার্ভারে।
একটি ফাইল লক করা একটি প্রক্রিয়া খুঁজে পেতে, এটি প্রায়ই আনলকার ব্যবহার করার সুপারিশ করা হয় টুল. আমি আনলকার ব্যবহার করি না কারণ এটি একটি ফাইল লক করার প্রক্রিয়া বা প্রক্রিয়াগুলির একটি চেইন সম্পর্কে বিস্তারিত তথ্য প্রদান করে না। আপনি একটি প্রক্রিয়া দ্বারা ব্যবহৃত একটি ফাইল আনলক করতে পারবেন না — আপনাকে একটি অ্যাপ সম্পূর্ণরূপে হত্যা করতে হবে৷৷এছাড়াও, এটি একটি তৃতীয় পক্ষের টুল, এবং আপনি এটি ইনস্টল করার সময় আপনার খুব মনোযোগী হওয়া উচিত, কারণ এটি আপনার প্রয়োজন নেই এমন একটি সম্পূর্ণ বান্ডিল ইনস্টল করার পরামর্শ দেয়।
যখন উইন্ডোজের একটি প্রক্রিয়া একটি ফাইল খোলে, একটি ফাইল বর্ণনাকারী (হ্যান্ডেল) ইনপুট/আউটপুট স্ট্রীমে বরাদ্দ করা হয়। প্রক্রিয়া এবং এর শিশু প্রক্রিয়া হ্যান্ডলার ব্যবহার করে ফাইল অ্যাক্সেস করে। Windows API ব্যবহার করে, আপনি ফাইল হ্যান্ডেল মুক্ত করতে এবং ফাইলটি আনলক করতে আপনার ফাইল সিস্টেমে একটি সংকেত পাঠাতে পারেন৷
আপনি যদি ফাইল হ্যান্ডেলগুলি বন্ধ করতে বাধ্য করেন, তাহলে এটি আপনার অ্যাপ বা কম্পিউটারের একটি অস্থির কাজ হতে পারে। আপনি যদি নিশ্চিত না হন যে আপনি একটি অ্যাপের ফাইল হ্যান্ডেল বন্ধ করার পরে কী ঘটতে পারে, তবে আপনি এটি আগে থেকে পরীক্ষা না করা পর্যন্ত এটি একটি প্রোডাকশন সার্ভারে করবেন না।প্রসেস এক্সপ্লোরার ব্যবহার করে কিভাবে একটি ফাইল আনলক করবেন?
প্রসেস এক্সপ্লোরার Sysinternals কিট থেকে একটি বিনামূল্যের টুল যা আপনি Microsoft ওয়েবসাইট (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer) থেকে ডাউনলোড করতে পারেন। আসুন এমন একটি প্রক্রিয়া খুঁজে বের করার চেষ্টা করি যা একটি ফাইল লক করেছে এবং প্রক্রিয়াটির ফাইল হ্যান্ডেল রিসেট করে ফাইলটিকে মুক্ত করি৷
- আপনাকে ProcessExplorer ইন্সটল করতে হবে না:প্রশাসক হিসেবে procexp.exe ডাউনলোড, এক্সট্রাক্ট এবং চালান;
- নির্বাচন করুন খুঁজুন -> হ্যান্ডেল বা DLL খুঁজুন (অথবা
Ctrl-F
টিপুন ); - আপনি যে ফাইলটি আনলক করতে চান সেটি উল্লেখ করুন এবং অনুসন্ধান করুন ক্লিক করুন৷;
- আপনি যে ফাইলটি চান সেটি নির্বাচন করুন। ফাইলটি খোলার প্রক্রিয়াটি প্রক্রিয়া গাছে হাইলাইট করা হবে। এটিতে ডান-ক্লিক করুন এবং কিল প্রসেস ট্রি নির্বাচন করুন প্রক্রিয়া শেষ করতে। যাইহোক, আপনি প্রক্রিয়াটি শেষ না করেই ফাইল হ্যান্ডেলটি বন্ধ করার চেষ্টা করতে পারেন। আপনি যে ফাইল হ্যান্ডেলটি খুঁজছেন তা স্বয়ংক্রিয়ভাবে প্রক্রিয়া এক্সপ্লোরার নীচের প্যানেলে হাইলাইট হয়েছে। হ্যান্ডেলটিতে ডান-ক্লিক করুন এবং হ্যান্ডেল বন্ধ করুন নির্বাচন করুন৷ . ফাইল বন্ধ নিশ্চিত করুন;
তাই আপনি প্যারেন্ট প্রক্রিয়াটি শেষ না করে ফাইল হ্যান্ডেলটি বন্ধ করেছেন। তারপর আপনি ফাইলটি সরাতে বা পুনঃনামকরণ করতে পারেন৷
৷হ্যান্ডেল টুল ব্যবহার করে কিভাবে একটি ফাইল হ্যান্ডেল রিলিজ করবেন?
হ্যান্ডেল Sysinternals থেকে আরেকটি কমান্ড লাইন টুল (আপনি এটি Microsoft ওয়েবসাইটে ডাউনলোড করতে পারেন:https://docs.microsoft.com/en-us/sysinternals/downloads/handle)। এটি আপনাকে আপনার ফাইলটি লক করার প্রক্রিয়া খুঁজে পেতে এবং হ্যান্ডেলটি মুক্ত করে লকটি ছেড়ে দেওয়ার অনুমতি দেয়।
- হ্যান্ডেল সংরক্ষণাগারটি ডাউনলোড এবং নিষ্কাশন করুন;
- প্রশাসক হিসাবে কমান্ড প্রম্পট খুলুন এবং নিম্নলিখিত কমান্ডটি চালান:
handle64.exe > listproc.txt
- এই কমান্ডটি একটি txt ফাইলে খোলা হ্যান্ডেলগুলির তালিকা সংরক্ষণ করবে। আপনি যে ফাইলটি পরিবর্তন করতে চান সেটির জন্য হ্যান্ডলগুলি প্রদর্শন করতে পারেন:
Handle64.exe -a “C:\Program Files\App”
অথবা নির্দিষ্ট প্রক্রিয়ার জন্য:handle64.exe -p excel.exe
- যেকোন টেক্সট এডিটরে listproc.txt খুলুন এবং লক করা ফাইলের নাম আছে এমন লাইনটি খুঁজুন। ফাইল হ্যান্ডেল আইডি কপি করুন (হেক্স বিন্যাসে)। তারপরে সেই বিভাগে যান যেখানে হ্যান্ডেলটির মালিকানার প্রক্রিয়াটি দেখানো হয়েছে এবং এর আইডি লিখুন। এটি সম্ভবত সিস্টেম হিসাবে চালানো একটি প্রক্রিয়া PID 4 থাকবে। কিছু Windows সিস্টেম প্রক্রিয়ার জন্য, handle.exe নিম্নলিখিত বার্তাটি ফেরত দেয়:
wininit.exe pid: 732 \<unable to open process>
. এর মানে হল যে আপনি এই সিস্টেম প্রসেস (এমনকি প্রশাসক হিসাবে) সম্পর্কে কোন তথ্য পেতে পারবেন না। এই ধরনের প্রক্রিয়ার মাধ্যমে ফাইল হ্যান্ডলগুলি খোলার জন্য, সিস্টেম হিসাবে cmd.exe চালান এবং আবার হ্যান্ডেলগুলির তালিকা পেতে চেষ্টা করুন। - তারপর কমান্ড প্রম্পটে ফিরে যান এবং এর HandleID এবং ProcessID দ্বারা ফাইল হ্যান্ডেল রিসেট করুন। কমান্ডের নিম্নলিখিত বিন্যাস রয়েছে:
handl64e.exe -c HandleID -p ProcessID
যেমন:handl64e.exe -c 18C -p 18800
- প্রক্রিয়াটির জন্য ফাইলটি বন্ধ করার বিষয়টি নিশ্চিত করতে টুলটি আপনাকে অনুরোধ করবে।
y
টিপে এটি নিশ্চিত করুন ->enter
.
যদি সিস্টেমটি সঠিকভাবে ফাইলটি বন্ধ করার প্রতিক্রিয়া জানায়, আপনি প্রক্রিয়াটি শেষ না করে বা আপনার সার্ভার/কম্পিউটার পুনরায় চালু না করেই আপনার ফাইলটি আনলক করবেন৷