2010-01-08 25 views
11

मैं एक फ़ाइल को हटाने की कोशिश कर रहा हूं, लेकिन निम्न कोड ऐसा नहीं करता है। यह अपवाद नहीं फेंकता है, लेकिन फाइल अभी भी वहां है। क्या यह संभव है?फ़ाइल। फ़ाइल को हटा नहीं रहा

try 
{ 
    File.Delete(@"C:\File.txt"); 
} 
catch(Exception e) 
{ 
    Console.WriteLine(e); 
} 

अगर फ़ाइल को हटाया नहीं जा सकता है, तो अपवाद मुद्रित होना चाहिए, लेकिन ऐसा नहीं है। क्या यह चुपचाप विफल होना चाहिए (जैसा कि फ़ाइल में है। डिलीट विधि किसी भी त्रुटि को निगल रही है)?

+1

क्या आप पूरी तरह से सुनिश्चित हैं कि फ़ाइल पथ सही है? फ़ाइल मौजूद नहीं है तो एक अपवाद फेंक नहीं दिया जाएगा। –

+0

आपको क्या लगता है कि फ़ाइल को हटाया नहीं जा रहा है? –

+0

मैं यह सत्यापित करूँगा कि यह मामला है, लेकिन पथ बिल्कुल सही दिखता था और फ़ाइल मौजूद थी। – kevindaub

उत्तर

16

File.Delete   निर्दिष्ट फ़ाइल मौजूद नहीं है तो अपवाद नहीं फेंकता है। [एमएसडीएन दस्तावेज के कुछ पिछले संस्करणों ने गलत तरीके से कहा कि यह किया था]।

try 
{ 
    string filename = @"C:\File.txt"; 
    if (File.Exists(filename)) 
    { 
     File.Delete(filename); 
    } 
    else 
    { 
     Debug.WriteLine("File does not exist."); 
    } 
} 
catch(Exception e) 
{ 
    Console.WriteLine(e); 
} 
+4

@ मिच »मुझे नहीं लगता कि यह सही है। एमएसडीएन की दूसरी वाक्य से: "_ निर्दिष्ट अपवाद नहीं है अगर निर्दिष्ट फ़ाइल मौजूद नहीं है।" http://msdn.microsoft.com/en-us/library/system.io.file.delete.aspx –

+0

दिलचस्प, मुझे यह सत्यापित करने के लिए हटाए जाने से पहले एक फ़ाइल करना होगा। धन्यवाद। – kevindaub

+1

आप सही हैं; 3.5 डॉको सही है। कुछ पिछले संस्करण नहीं थे। –

2

क्या आप सुनिश्चित हैं कि फ़ाइल का नाम सही है? एक बार यह त्रुटि नहीं फेंकता है अगर फ़ाइल मौजूद नहीं है। बेवकूफ सवाल, लेकिन क्या आपको किसी भी मौके से फ़ाइल नाम में टाइपो है? या पथ में एक त्रुटि?

3

यह देखने के लिए जांचें कि फ़ाइल का पथ सही है। फ़ाइल मौजूद नहीं है तो एक अपवाद फेंक नहीं दिया जाएगा। एक सामान्य गलती File.txt नाम की एक फ़ाइल को भ्रमित करना है, जिसका नाम File.txt.txt है, यदि "ज्ञात फ़ाइल प्रकारों के लिए एक्सटेंशन छुपाएं" विंडोज में सेट है।

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