20. marts 2006 - 18:12Der er
2 kommentarer og 1 løsning
The process cannot access the file
Hej, jeg sidder med et problem. Jeg er ny indefor vb.net og vil lave en simpel "vis og skriv" til en fil-projekt.
Når jeg får outputtet ud og vil gemme filen får jeg følgende fejl:
The process cannot access the file 'D:\Documents and Settings\Ejer\Dokumenter\Modtagne filer\do.php' because it is being used by another process.
Hvad skal jeg gøre ved det problem?
Min kode ser i øjeblikket således ud: Imports System.IO Public Class Form1
Private Sub aabenfil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles aabenfil.Click
If aaben.ShowDialog() = DialogResult.OK Then input.Text = aaben.FileName End If End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim indhold As New StreamReader(input.Text) output.Text = indhold.ReadToEnd()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim skriv As StreamWriter = New StreamWriter(input.Text) skriv.WriteLine(output.Text) MsgBox("Filen " & input.Text & " er blevet gemt med de nye dataer")
Lige en kommentar til det med at lukke filer og frigive ressourcer.
Stream'en indhold skal også lukkes, hvis der evt. opstår exceptions. Så koden skal hellere se ud som følger:
Dim indhold As System.IO.StreamReader = Nothing Try indhold = New System.IO.StreamReader(input.Text) output.Text = indhold.ReadToEnd() Finally If (Not indhold Is Nothing) Then indhold.Close() End If End Try
I .NET 2.0 er der i VB.NET også kommet mulighed for at lave Using statements (som man havde i C# i .NET 1.1). Med Using ser koden således ud:
Using indhold As New System.IO.StreamReader(input.Text) output.Text = indhold.ReadToEnd() End Using
Hvilket jo er noget pænere.
// Jens
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.