lese/schreib prozedur

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    lese/schreib prozedur

    ich habe folgendes problem ich habe diesen code geschrieben der in eine textbox einen dateininhalt auslest und ihn dan auch wieder speichern kann.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim strFileName As String = "C:\xampp\htdocs\ok"
    5. Dim strValue As String = ""
    6. Dim writer As StreamWriter
    7. Dim enc As System.Text.Encoding
    8. Dim blnAppend As Boolean = False
    9. enc = System.Text.Encoding.ASCII
    10. writer = New StreamWriter(strFileName, blnAppend, enc)
    11. strValue = RichTextBox1.Text
    12. writer.Write(strValue)
    13. writer.Close()
    14. End Sub
    15. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    16. Dim strFileName As String = "C:\xampp\htdocs\ok"
    17. Dim strValue As String = ""
    18. Dim reader As StreamReader
    19. Dim enc As System.Text.Encoding
    20. enc = System.Text.Encoding.ASCII
    21. If File.Exists(strFileName) = True Then
    22. reader = New StreamReader(strFileName, enc)
    23. While (reader.Peek > -1)
    24. strValue = strValue & reader.ReadLine
    25. End While
    26. reader.Close()
    27. Else : strValue = "keine datei"
    28. End If
    29. End Sub
    30. End Class


    ich bekomme immer wider den selben fehler :
    Ein Ausnahmefehler des Typs "System.UnauthorizedAccessException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Der Zugriff auf den Pfad "C:\xampp\htdocs\ok" wurde verweigert.
    wie kann ich diesen fehler beheben? danke im voraus für die hilfe.
    Moin!

    Das bedeutet einfach, dass du keine Berechtigungen hast, in diesem Verzeichnis eine Datei zu lesen/beschreiben/erstellen/auf dieses Verzeichnis zuzugreifen.
    Rechtsklick auf den Ordner, Reiter "Sicherheit" und dort dem angemeldeten User entsprechende Berechtigungen (evtl rekursiv auf darin liegende Dateien und Order) einstellen. Oder dein Programm als Administrator ausführen lassen.
    Du könntest deine StreamReader und -Writer nach dem Close() auch noch Dispose()'n, freigeben. Als kleinen Tipp ;).

    MfG,
    X-Zat / Mo
    ​Die Ausnahme, die ausgelöst wird, wenn das Betriebssystem aufgrund eines E/A-Fehlers oder eines bestimmten Typs von Sicherheitsfehler den Zugriff verweigert.

    (msdn.microsoft.com/de-de/libra…sexception(v=vs.110).aspx)

    Laut MSDN stimmen die Berechtigungen trotzdem nicht (könnte bei System-Dateien auftreten, etwa der SAM-Datei, die Passwörter speichert).
    Der Debugger zeigt doch für gewöhnlich die Zeile im Code an, die den Fehler verursacht - Welche ist es? Vielleicht wird die Datei von einem anderen Prozess verwendet?
    AntiVir vielleicht? Im Zweifelsfall ist es eine gute Idee, solche Fehler in einer VM zu testen und zu schauen, ob sich der Fehler reproduzieren lässt.

    Und: Kann es sein, dass eine alte Instanz deines Programmes ein FileHandle nicht geschlossen hat? Das würde das Schreiben in dieselbe Datei natürlich verhindern...

    MfG,
    X-Zat / Mo
    Starte mal deine Software mit Adminrechten

    EDIT: Man, ich will sehen wenn neue Posts da sind bevor ich poste :o
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    @ramutra Räum mal SDeinen Code auf:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim strFileName As String = "C:\xampp\htdocs\ok"
    3. IO.File.WriteAllText(strFileName, RichTextBox1.Text, System.Text.Encoding.ASCII)
    4. End Sub
    5. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    6. Dim strFileName As String = "C:\xampp\htdocs\ok"
    7. Dim strValue As String = "keine datei"
    8. If File.Exists(strFileName) = True Then
    9. strValue = IO.File.ReadAllText(strFileName, System.Text.Encoding.ASCII)
    10. End If
    11. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!