मैं फ़ाइलों कि के रूप में परिभाषित एक समारोह में उत्पन्न कर रहे हैं की एक संख्या है:SmtpClient द्वारा अनुलग्नक के रूप में भेजे जाने के बाद फ़ाइल को खुली प्रतीत होती है। मैं फ़ाइल को कैसे हटा सकता हूं?
Public Function GeneratePDF(exportFileName As String) As String
Dim GeneratePath As String = FileSystem.CombinePath(standardDirectory, exportFileName & DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") & ".pdf")
If GenerateFile(GeneratePath) Then
Return GeneratePath
End If
Return String.Empty
End Function
इन फ़ाइलों को तुरंत मुद्रित कर रहे हैं और फ़ाइलें स्वचालित रूप से एक निर्देशिका में सहेजे जाते हैं; फाइलें वास्तविक सॉफ्टवेयर उपयोगकर्ताओं द्वारा उपयोग के लिए नहीं हैं। मैं उन्हें ऑडिटिंग उद्देश्यों के लिए विशिष्ट रूप से पहचाने जाने के लिए फ़ाइलों को टाइमस्टैम्प करता हूं।
मैं अब एक आवश्यकता बाह्य कंपनी के लिए इनमें से कुछ फ़ाइलों को ईमेल करने के लिए भेजा गया है, और किसी को शिकायत की है कि मौजूदा फ़ाइल नाम उपयोगकर्ता के अनुकूल नहीं हैं।
Public Function GeneratePDF(exportFileName As String) As String
Dim GeneratePath As String = FileSystem.CombinePath(standardDirectory, exportFileName & DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") & ".pdf")
If GenerateFile(GeneratePath) Then
Dim friendlyFilePath As String = FileSystem.CombinePath(standardDirectory, GetFriendlyFileName(GeneratePath))
System.IO.File.Copy(GeneratePath, friendlyFilePath)
Dim mailMsg As New System.Net.Mail.MailMessage
Dim smtp As New System.Net.Mail.SmtpClient
[Vast amount of code, which attaches friendlyFilePath to the email, then sends it]
System.IO.File.Delete(friendlyFilePath)
Return GeneratePath
End If
Return String.Empty
End Function
यह एक फेंकता है:
तो, मैं एक अस्थायी निर्देशिका के लिए उत्पन्न फ़ाइल कॉपी, एक दोस्ताना नाम के साथ, मित्रवत फ़ाइल ईमेल, तो इसे हटाने, मेरे लेखापरीक्षा निशान बरकरार छोड़ रहा है, इसलिए तरह की कोशिश की System.IO.IOException
लाइन System.IO.File.Delete(friendlyFilePath)
पर क्योंकि फ़ाइल अभी भी उपयोग में है, इसे ईमेल करने के बाद।
मैंने ईमेल कोड निकाला है, जो प्रतिलिपि बनाने और हटाने को ठीक कर देता है, इसलिए यह स्पष्ट रूप से उस ईमेल को फ़ाइल संलग्न कर रहा है जो समस्या का कारण बनता है।
मैं भी हटाने की लाइन से पहले breakpointing की कोशिश की है, पांच मिनट इंतजार कर, इस बात की पुष्टि ईमेल भेज दिया गया तो कोड को आगे बढ़ाने, लेकिन एक ही अपवाद अभी भी फेंक दिया है।
कोई भी इस मुद्दे को हल करने का सुझाव दे सकता है?
कोई भी मौका है कि उसमें [कोड की विशाल मात्रा] क्षेत्र में आपके पास कुछ प्रकार की धारा है जिसे आपने बंद नहीं किया है? –