2010-08-02 20 views
7

मैं अपने कार्यक्रम में उस अपवाद को प्राप्त करता रहता हूं। मुझे कैसे पता चलेगा कि किस प्रक्रिया ने इसे लॉक किया है, या तो प्रोग्राम कोड द्वारा या विंडोज़ के साथ कुछ कर कर?फ़ाइल का उपयोग दूसरी प्रक्रिया द्वारा किया जाता है। कैसे प्रक्रिया को जानना है?

System.IO.IOException : The process cannot access the file 'file.ext' because it is being used by another process.

उत्तर

10

आप फ़ाइल के लिए खोज करने के लिए ProcessExplorer उपयोग कर सकते हैं:

बस ऐसे ही (शायद आपके पास व्यवस्थापक अधिकार के साथ यह शुरू करने के लिए की जरूरत है) चलाने के लिए, के नाम पर Ctrl-F और प्रकार मारा फ़ाइल जो लॉक है - यह सभी खुले हैंडल पाएंगे जो दिए गए नाम से मेल खाते हैं, और आपको बताएंगे कि यह किस प्रक्रिया से संबंधित है।

+0

मुझे कैसे पता चलेगा कि वर्तमान में कौन सी प्रक्रिया फाइल का उपयोग कर रही है? क्योंकि जब मैंने कोशिश की तो ऐसा लगता है कि यह सभी हालिया पहुंचों को सूचीबद्ध करता है –

+1

@ लुइस आरएच: प्रशासनिक अधिकारों के साथ एक प्रक्रिया के तहत प्रक्रिया एक्सप्लोरर शुरू करने के बाद आपको Ctrl-F दबाएं या "ढूंढें"/"हैंडल या डीएलएल ढूंढें" ... "और उसके बाद आप जिस फ़ाइल को खोजते हैं उसका नाम टाइप करें। तो बस क्रैगन ने आपके लिए क्या लिखा है ठीक है। – Oleg

+0

@ लुइस - यह हो सकता है कि उस फ़ाइल तक पहुंचने वाली प्रक्रियाएं तुरंत इसे बंद न करें, इस स्थिति में प्रोसेस एक्सप्लोरर आपके लिए उन हैंडल/प्रक्रियाओं को पायेगा - मुझे यकीन नहीं है कि कौन से हैंडल आपके ब्लॉक को अवरुद्ध कर रहे हैं हालांकि उस फ़ाइल का उपयोग (सभी हैंडल किसी फ़ाइल तक पहुंच को अवरुद्ध नहीं करेंगे - दो प्रक्रियाएं उसी प्रक्रिया को साझा कर सकती हैं जो प्रत्येक प्रक्रिया के अनुरोध के आधार पर - पढ़ने/लिखने आदि ...) – Justin

1

इस पर एक नज़र डालें: http://www.emptyloop.com/unlocker/

मैं यह सब समय का उपयोग करें, आपको बताता है जो इस प्रक्रिया में यह बंद कर दिया गया है और आप इसे पूरी तरह से अनलॉक करने के लिए मौका देता। विशेष रूप से जब आपके डीबगिंग छवि मैनिपुलेशन ऐप्स के लिए उपयोगी होता है और यह फ़ाइल को ठीक से बंद किए बिना बाहर निकलता है।

आशा है कि इससे मदद मिलती है!

शॉन

2

आप क्या प्रक्रिया एक फाइल ताला लगा है यह देखने के ProcessMon जैसे किसी उपकरण का उपयोग कर सकते हैं।

+0

संसाधन मॉनिटर और प्रोसेस एक्स्प्लोरर की तुलना में यह मेरे मामले में एकमात्र व्यवहार्य विकल्प था, जो दोनों मानते हैं कि ब्लॉकिंग एप्लिकेशन में अभी भी फाइल को पकड़ने के लिए फ़ाइल है जब मैं इसे देखने के लिए चारों ओर घूमता हूं। मेरे मामले में मुझे एमएसबिल्ड के साथ कुछ अस्थायी फ़ाइल स्विचारू में पकड़ा गया था और स्पष्ट रूप से mcshield.exe जो temp बैच फ़ाइलों को लिखने वाले मेरे प्रीबिल्ड कमांड के साथ शरारत कर रहा था। – jxramos

संबंधित मुद्दे

 संबंधित मुद्दे