Hallo zusammen,
mein Problem ist, dass ich eine Email mit Anhang versende und danach den Anhang in einen anderen Ordner verschieben möchte. Als Fehlermeldung bekomme ich, dass die Datei noch von einem anderen Prozess geöffnet sei.
(Ich hab übrigens 0 Plan warum der den Code vllt nicht eingerückt anzeigt. Der Code ist aus Visual Studio rauskopiert und hier die Vorschau macht keine Einrückungen)
Muss ich die Datei irgendwie nach dem versenden wieder Freigeben oder dauert das noch länger als der 1500 mal die Schleife durchläuft?
Hoffe mir kann jemand helfen oder ein Stichwort für die weitere Suche geben.
MfG
Pawny
edit: mal hoffentlich nun leserlich gemacht
mein Problem ist, dass ich eine Email mit Anhang versende und danach den Anhang in einen anderen Ordner verschieben möchte. Als Fehlermeldung bekomme ich, dass die Datei noch von einem anderen Prozess geöffnet sei.
VB.NET-Quellcode
- Imports System.Net.Mail
- Imports System.IO
- Public Class Form1
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim eMail As New MailMessage("xxx@xxx.de", "xxx@xxx.de") 'Sender & Empfnger
- Dim client As New SmtpClient
- Dim anmeldung As New Net.NetworkCredential
- Dim anhang As String
- Dim geklappt As Boolean
- Dim Start As String
- Dim Ziel As StringDim uhrzeit As TimeSpan
- Dim count As Int16
- uhrzeit = Now.TimeOfDay
- geklappt = False
- Try
- For Each Files In My.Computer.FileSystem.GetFiles("X:\Start\")
- anhang = My.Computer.FileSystem.GetName(Files)
- anmeldung.UserName = xxx@xxx.xx
- anmeldung.Password = "xxx"
- With eMail
- .Subject = "Betreff"
- .IsBodyHtml = False
- .BodyEncoding = System.Text.Encoding.Default
- .Body = "Datei: " & anhang & " // " & uhrzeit.ToString
- .Priority = MailPriority.Normal
- .Attachments.Add(New Attachment("X:\Start\" & anhang))
- End With
- client.Host = "xxx.xxx.xx"
- client.Credentials = anmeldung
- client.Send(eMail)Start = "X:\Start\" & anhangZiel = "X:\Ziel\" & anhang
- 'mein verzweifelter versuch, das verschieben hinnauszuzgern da ich evtl da den fehler zu finden hoffte
- count = 0
- Do While geklappt = False
- Try
- My.Computer.FileSystem.MoveFile(Start, Ziel)
- geklappt = True
- Catch ex As Exception
- geklappt = False
- count = count + 1
- Label1.Text = count
- If count = 1500 Then
- geklappt = True
- End If
- End Try
- Loop
- Next
- Catch ex As Exception
- Label2.Text = ex.ToString()
- End Try
- End Sub
- End Class
(Ich hab übrigens 0 Plan warum der den Code vllt nicht eingerückt anzeigt. Der Code ist aus Visual Studio rauskopiert und hier die Vorschau macht keine Einrückungen)
Muss ich die Datei irgendwie nach dem versenden wieder Freigeben oder dauert das noch länger als der 1500 mal die Schleife durchläuft?
Hoffe mir kann jemand helfen oder ein Stichwort für die weitere Suche geben.
MfG
Pawny
edit: mal hoffentlich nun leserlich gemacht
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Pawny“ ()