gibi tanımlanır bir fonksiyonu olarak üretilen dosyaları sahiptir:Dosya, SmtpClient tarafından ek olarak gönderildikten sonra açık tutuluyor gibi görünüyor. Dosyayı nasıl silebilirim?
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
Bu dosyalar hemen basılır ve dosyaları otomatik bir dizine kaydedilir; dosyaların kendisi gerçek yazılım kullanıcıları tarafından kullanılmaz. Dosyaları denetim amacıyla benzersiz bir şekilde tanımlamak için dosyaları zamanladım.
Bu dosyalardan bazılarını şirkete harici olarak e-postayla göndermek için bir gereksinim aldım ve birisi geçerli dosya adlarının kullanıcı dostu olmadığını şikayet etti.
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
Bu atar:
Yani, şöyle bozulmamış benim denetim iz bırakarak silme sonra, dostça dosyayı e-posta göndererek, bir dostça adıyla, geçici bir dizine Oluşturulan dosyayı kopyalama çalıştı System.IO.IOException
numaralı hat System.IO.File.Delete(friendlyFilePath)
numaralı hatta dosya e-postayla gönderildikten sonra kullanımda olduğundan.
Kopyalama ve silme işleminin iyi yapılmasını sağlayan e-posta kodunu aldım, bu nedenle de sorunun nedeni olan dosyayı e-postaya bağlaması.
Ayrıca, silme satırından önce beş dakika bekledikten, e-postanın gönderildiğini doğruladıktan sonra kodun ilerlemesinden önce breakpointing denedim, ancak kod ilerledikçe aynı istisna hala atıldı.
Bu sorunun nasıl çözüleceğini öneren herkes olabilir mi?
Bu kadar büyük miktarda kod bölgesinde, kapatılmadığınız bir çeşit akışınız var mı? –