2009-05-18 13 views
25

मेरे पास रात की रिपोर्ट का एक सेट है।प्रक्रिया फ़ाइल तक नहीं पहुंच सकती है क्योंकि इसका उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है

प्रक्रिया फ़ाइल क्योंकि इसे किसी अन्य प्रक्रिया

मैं कैसे बता क्या प्रक्रिया फ़ाइल को पकड़कर रहा है द्वारा किया जा रहा है का उपयोग नहीं कर सकते हैं:

कभी कभी मैं अपवाद मिल सकता है? मैं सोच रहा हूं कि यह मैकफी है लेकिन मुझे इसे साबित करने की ज़रूरत है।

+2

बस एक विचार, शायद यह आपके वायरस सुरक्षा नहीं है। यह मेरे अनुभव में कभी नहीं रहा है। वास्तव में यह आमतौर पर मेरा कोड है। सुनिश्चित करें कि आप एक फ़ाइल खोलने के हर जगह "उपयोग" कर चुके हैं। –

+0

स्टैक ओवरफ़्लो पर वह अन्य पोस्ट एक डीएल पर लॉक है। यह एक पाठ फ़ाइल पर एक फ़ाइल लॉक है। मेरे पास एक प्रयोग कथन है। –

+0

मैं आपकी प्रक्रिया के लिए जो भी प्रिंसिपल उपयोग कर रहा हूं उसके लिए मैं फ़ोल्डर एक्सेस अधिकारों की जांच करूंगा। इसे स्थानांतरित करने का अधिकार नहीं हो सकता है, केवल केवल पहुंच पढ़ें। –

उत्तर

19

समस्या यह थी कि .NET में MailMessage फ़ाइल अनुलग्नकों पर था। मुझे लगाव पर एक निपटान करना पड़ा और फिर यह काम किया।

0

Filemon वह उपकरण हो सकता है जिसे आप ढूंढ रहे हैं।

(या यहां तक ​​Process Monitor जो जाहिरा तौर पर FileMon प्रतिस्थापित किया है।)

+0

मैं C# में एक फ़ाइल का नाम बदलने का प्रयास कर रहा हूं, मैं बस file.move (स्रोत, गंतव्य) का उपयोग करता हूं लेकिन हर बार जब मैं कोशिश करता हूं तो मुझे एक त्रुटि मिलती है, फ़ाइल को दूसरी प्रक्रिया द्वारा उपयोग किया जाता है। मैं asp.net, iis6 का उपयोग कर वेब इंटरफ़ेस के माध्यम से नाम बदल रहा हूं। धन्यवाद – safi

1

यहाँ कुछ उपकरण (रों) जो बताता है और बंद फ़ाइलों को अनलॉक: http://ccollomb.free.fr/unlocker/

+1

किसी भी तरह से मैं प्रोग्रामिंग रूप से C# में कर सकता हूं? –

+0

को यह डुप्लिकेट प्रश्न यहां मिला: http://stackoverflow.com/questions/317071/how-do-i-find-out-which-process-is-locking-a-file-c – Kamarey

+1

स्टैक ओवरफ़्लो पर वह अन्य पोस्ट है एक डीएल पर एक ताला। यह एक पाठ फ़ाइल पर एक फ़ाइल लॉक है। –

9

Process Explorer या Process Monitor जैसे किसी उपकरण का प्रयोग करें।

+0

मैं C# में एक फ़ाइल का नाम बदलने की कोशिश कर रहा हूं, मैं बस file.move (स्रोत, गंतव्य) का उपयोग करता हूं लेकिन हर बार जब मैं कोशिश करता हूं तो मुझे एक त्रुटि मिलती है, फ़ाइल को दूसरी प्रक्रिया द्वारा उपयोग किया जाता है। मैं asp.net, iis6 का उपयोग कर वेब इंटरफ़ेस के माध्यम से नाम बदल रहा हूं। धन्यवाद – safi

+0

@safi आपको इसे एक नया प्रश्न बनाने की जरूरत है। आपसे मुझे एक लिंक टिप्पणी करने के लिए आपका स्वागत है ... –

+0

मैंने यह सवाल किया है लेकिन मुझे उचित उत्तर नहीं मिला। लिंक http://stackoverflow.com/questions/5152841/file-renaming-problem – safi

0
  1. Process Explorer> खोजें> हैंडल> अपने फ़ाइल नाम में टाइप करें।
  2. Unlocker। इसे खोलने का प्रयास करें, अगर यह में लॉक है, तो अनलॉकर खुल जाएगा और आपको लॉक करने वाले प्रोग्राम दिखाएगा।
+0

मैं C# में एक फ़ाइल का नाम बदलने का प्रयास कर रहा हूं, मैं बस file.move (स्रोत, गंतव्य) का उपयोग करता हूं लेकिन हर बार जब मैं कोशिश करता हूं तो मुझे त्रुटि किसी अन्य प्रक्रिया द्वारा उपयोग की जाती है। मैं asp.net, iis6 का उपयोग कर वेब इंटरफ़ेस के माध्यम से नाम बदल रहा हूं। धन्यवाद – safi

1

पुष्टि की। मुझे एक ही समस्या थी और ग्रेग ने जो किया वह किया।

finally ब्लॉक में संदेश भेजने के बाद, मैं सिर्फ वहाँ में रखते हैं, और यह फ़ाइल हैंडल जारी किया:

foreach(Attachment a in message.Attachments) a.Dispose(); 
+0

@ माइक मैं सी # में एक फ़ाइल का नाम बदलने की कोशिश कर रहा हूं, मैं बस file.move (स्रोत, गंतव्य) का उपयोग करता हूं लेकिन हर बार जब मैं कोशिश करता हूं तो मुझे एक त्रुटि मिलती है, फ़ाइल को दूसरी प्रक्रिया द्वारा उपयोग किया जाता है। मैं asp.net, iis6 का उपयोग कर वेब इंटरफ़ेस के माध्यम से नाम बदल रहा हूं। धन्यवाद – safi

3
Attachment data = new Attachment(@"c:\filename"); 

'send email.... 

data.Dispose();  
0

GC.Collect() निपटाने के बाद इसे ठीक करना चाहिए

+0

यह मेरे मामले में काम करता है क्योंकि डिस्पोजेस पर्याप्त या कड़ाई से नहीं हो रहे हैं। यह सिर्फ बुरा लगता है। कोई बेहतर तरीका ज़रूर होगा। – Steve

0

मैं जावा प्रोग्राम शुरू करने की कोशिश कर रहा था और संदेश मिला। टास्क मैनेजर में देखकर, जब मैंने उस प्रक्रिया को मार दिया, तो पहले से ही जावा कार्य चल रहा था (लूपिंग?), मेरी प्रक्रिया चलाने में सक्षम थी।

0

मुझे बस एक ही समस्या थी, लेकिन मेरे मामले में मैं विसुल स्टूडियो 2012 में .mdf फ़ाइल को हटाने की कोशिश कर रहा था। मुझे इसे हल करने में मदद करने के लिए दी गई त्रुटि पर अधिक जानकारी नहीं थी और इसलिए मैं यहां देख रहा था मदद। तब मुझे एहसास हुआ कि भले ही यह एक समान समस्या है, लेकिन यह एक अलग प्रक्रिया थी जिसके साथ मुझे निपटना पड़ा।

मैंने जो किया वह विंडोज एक्सप्लोरर में .mdf फ़ाइल को हटाने का प्रयास किया गया था और फिर मैंने मुझे एक त्रुटि दी कि SQL Server 2008 R2 वास्तव में फ़ाइल पर हो रहा था, भले ही डेटाबेस हटा दिया गया हो। एक बार जब मैं नया हो गया, तो मुझे बस इतना करना पड़ा कि SQL Server 2008 R2 बंद हो गया था और फ़ाइल को फिर से हटाने की कोशिश की और यह काम किया।

यदि आपको SQL Server 2008 R2 को चालू और बंद करने के निर्देशों की आवश्यकता है, तो नीचे दिए गए लिंक देखें।

Turn on and off SQL Server

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

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