Jeg kan ikke få lov til at slette en fil jeg lige har læst fra ?
Hej Eksperter!Jeg har lidt problemer med at slette en fil jeg lige har læst fra. Jeg har koden her !
Main klassen:
Public Sub closeMain()
'fil med opdateringer til database
Dim file As String = Application.StartupPath() _
& "/Udgaaende Opdateringer/Opdateringer.kup"
'undersøg om der er opdateringer der skal sendes
Dim updates As Boolean
updates = ft.checkForUpdates()
'OBS følgende skal hentes fra konfigurationsfil
Dim smtpServer As String = "mail.k64.dk"
Dim sender As String = "Mortensen@henrikm.dk"
Dim reciever As String = "Mortensen@henrikm.dk"
'mailen er ikke sendt endnu
Dim sent As Boolean = False
If updates Then
If MsgBox("Vil du overføre opdateringer ?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Dim mail As New MailSender(smtpServer, sender, reciever, ft.makeAttachment(file, Me.idGenerator.generateId))
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
sent = mail.send() 'nu er den sendt eller ikke sendt
Me.Cursor = System.Windows.Forms.Cursors.Default
End If
End If
'hvis mailen er sendt, så slet filen der blev lavet attachment af
If sent Then
Try
System.IO.File.Delete(file) '
Catch ex As Exception
MsgBox("fil ikke slettet" & ex.ToString)
End Try
End If
Me.Close()
Me.Dispose()
End Sub
Og her er klassen der åbner, læser og lukker filen
Public Function makeAttachment(ByVal file As String, ByVal id As String) As String
Dim attach As String
Try
Dim temp As New ArrayList
temp.Add(id)
'opdateringsfil
Dim reader As New IO.StreamReader(file)
'placering af fil som skal bruges som attachment
Dim writer As New IO.StreamWriter(Application.StartupPath() & "/Udgaaende Opdateringer/opdateringspakke.kup", True)
Try
' hent første linie fra opdateringsfil
Dim lineRead As String = reader.ReadLine()
' hent resten af linierene en efter en
While (Not lineRead Is Nothing)
temp.Add(decrypt(lineRead))
lineRead = reader.ReadLine()
End While
'fylder attachmentfil med indholdet fra temp
Dim i As Integer
For i = 0 To temp.Count - 1
writer.WriteLine(temp(i))
Debug.WriteLine(temp(i))
Next
'lukker og slukkker forbindelsen til begge filer
writer.Flush()
reader.Close()
writer.Close()
writer = Nothing
reader = Nothing
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
End Try
attach = Application.StartupPath() & "/Udgaaende Opdateringer/opdateringspakke.kup"
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Return attach
End Function
Jeg får beskeden: the process cannot access file because file allready in use by another process... eller noget i den stil.
Hvad dælen er der galt her ?
~henrik mortensen