मैं एक अजीब समस्या (जो शायद ज्ञान की मेरी कमी है) के साथ अटक कर रहा हूँ, मैं अपमानजनक कोड मौजूद:हटाएं कार्यों को हटा देता है तब भी जब बुला एप्लिकेशन बंद हो
try
{
f.Delete();
fTemp.MoveTo(f.FullName);
Console.WriteLine("INFO: Old file deleted new file moved in > {0}", f.FullName);
}
catch (IOException ex)
{
Console.WriteLine("ERROR: Output file has IO exception > {0}", f.FullName);
Environment.ExitCode = 1;
}
च और fTemp FileInfo वस्तुओं रहे हैं। इसलिए यदि मैं इसे कोड के साथ चलाता हूं जहां f एक mediaplayer में चल रही एक वीडियो फ़ाइल है तो यह अपवाद फेंकता है। यह ठीक काम करता है और उम्मीद के अनुसार। अब जब मैं mediaplayer बंद करता हूं तो यह फ़ाइल हटा देता है !? भले ही मेरा आवेदन लंबा बंद हो। जब भी मैं विजुअल स्टूडियो को बंद करता हूं तब भी मैं फ़ाइल को हटा देता हूं, जब मैं mediaplayer को बंद करता हूं। जैसे कि कुछ कॉलबैक कहीं भी स्थापित किया जा रहा है यह सुनिश्चित करने के लिए कि फ़ाइल किसी बिंदु पर हटा दी जाती है। अवांछित व्यवहार में यह संभोग। लेकिन मैं यह पता लगाने नहीं कर सकते वास्तव में गलत हो जाता है क्या ... अब के लिए
परिणाम:
if (!IsFileLocked(f))
{
try
{
f.Delete();
fTemp.MoveTo(f.FullName);
Console.WriteLine("INFO: Old file deleted new file moved in > {0}", f.FullName);
}
catch (IOException ex)
{
Console.WriteLine("ERROR: Output file has IO exception > {0}", f.FullName);
Environment.ExitCode = 1;
}
catch (UnauthorizedAccessException ex)
{
Environment.ExitCode = 2;
Console.WriteLine("ERROR: Output file is locked > {0}", f.FullName);
}
}
else
{
Environment.ExitCode = 3;
Console.WriteLine("ERROR: Couldn't delete file was locked");
}
मैं जानता हूँ कि मैं अब भी हटाएँ और MoveTo के बीच बेहतर कर सकते हैं, लेकिन अभी तो मैं अपना परिवर्तन ले लेंगे , शॉटगन कोडिंग .....
मीडिया प्लेयर ने सबसे अधिक संभावना FILE_SHARE_DELETE के साथ फ़ाइल खोला, जिसका अर्थ है "जब मैं इसका उपयोग कर रहा हूं तो लोग फ़ाइल को हटा दें।" फ़ाइल को हटाने के लिए चिह्नित किया गया है और जब मीडिया प्लेयर फ़ाइल बंद करता है तो हटाना पूरा हो जाता है। –
आपके IOException के साथ दिया गया संदेश क्या है? –
लेकिन फिर मैं उम्मीद करता हूं कि अपवाद नहीं उठाया जाएगा। इसके अलावा मैंने इसे विंडोज मीडिया प्लेयर के साथ खोला, जो मेरी पुस्तक में फाइलों को कुख्यात रूप से लॉक कर रहा है ... या यह आपके ध्वज के समान नहीं है। – JHN