vb.net 2012 / Der (Schreib) Zugriff auf den Pfad "C:\Dokumente\Test" wurde verweigert.

  • VB.NET

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

    vb.net 2012 / Der (Schreib) Zugriff auf den Pfad "C:\Dokumente\Test" wurde verweigert.

    Hallo Zusammen,

    ich habe ein Problem mit einem Programm und komme nicht weiter. ?( ?( ?(
    Immer wenn ich etwas speichern möchte bekomme ich die Mitteilung:" Der Zugriff auf den Pfad "C:\Dokumente\Test" wurde verweigert.

    Öffnen von dort kann ich. Nur eben nicht abspeichern. :cursing: :cursing:

    Ich benutze Win10 und bin als Admin angemeldet. Daran kann es nicht liegen.

    Hier mal das Programm.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class frmEditor
    3. Const dateipfad = "C:\VBDN\Dokumente"
    4. Const Anwendungstitel = "Text"
    5. Private Datei As String
    6. Dim lstVerzeichnisse As Object
    7. Private Sub mnuSpeichernUnter_Click(sender As Object, e As EventArgs) Handles mnuSpeichernUnter.Click
    8. Dim fs As FileStream
    9. Dim sw As StreamWriter
    10. With dlgDateiSpeichern
    11. .AddExtension = True 'Dateierweiterung anfügen
    12. .CreatePrompt = True 'Nachfrage bei neuer Datei
    13. .DefaultExt = ".txt" 'Standarderweiterung
    14. .DereferenceLinks = True 'Verknüpfung auflösen
    15. 'Dateifilter: Text- und Alle Dateien
    16. .Filter = "Text (*.txt)|*.txt| Alle Dateien (*.*)|*.*"
    17. 'Anfangsverzeichnis
    18. .InitialDirectory = "C:\VBDN\Dokumente"
    19. .OverwritePrompt = True 'Nachfrage bei Überschreiben
    20. .RestoreDirectory = True 'Anfangsverzeichnis wiederherstellen
    21. .Title = "Speichern unter:"
    22. .ValidateNames = True 'Dateinamen auf korrekte Zeichen überprüfen
    23. End With
    24. If dlgDateiSpeichern.ShowDialog = Windows.Forms.DialogResult.OK Then
    25. Datei = dlgDateiSpeichern.FileName
    26. End If
    27. Try
    28. fs = New FileStream(dateipfad, FileMode.Create)
    29. sw = New StreamWriter(fs)
    30. sw.WriteLine(txtText.Text)
    31. sw.Close()
    32. Catch ex As Exception
    33. MessageBox.Show(ex.Message)
    34. End Try
    35. End Sub
    36. Private Sub mnuNeu_Click(sender As Object, e As EventArgs) Handles mnuNeu.Click
    37. If txtText.Modified Then
    38. Dim s As String = "Der Inhalt wurde geändert. " _
    39. & vbCrLf & _
    40. "Wollen Sie die Datei schließen ohne zu speichern?"
    41. If MessageBox.Show(s, Anwendungstitel, _
    42. MessageBoxButtons.YesNo, _
    43. MessageBoxIcon.Exclamation, _
    44. MessageBoxDefaultButton.Button2) _
    45. = Windows.Forms.DialogResult.No Then
    46. Exit Sub
    47. End If
    48. End If
    49. txtText.Clear()
    50. txtText.Modified = False
    51. Datei = ""
    52. Text = Anwendungstitel & "-" & "Unbenannt"
    53. End Sub
    54. Private Sub mnuÖffnen_Click(sender As Object, e As EventArgs) Handles mnuÖffnen.Click
    55. Dim Dateien As New OpenFileDialog
    56. Dim fs As FileStream
    57. Dim sr As StreamReader
    58. Dim zeile As String
    59. Dateien.Multiselect = True
    60. Dateien.InitialDirectory = "C:\VBDN\Dokumente"
    61. Dateien.Filter = "Textdateien (*.txt)|*.txt|Alle Dateien (*.*)|*.*"
    62. Dateien.Title = " Datei zum Öffnen wählen"
    63. If Dateien.ShowDialog() = Windows.Forms.DialogResult.OK Then
    64. For Each s As String In Dateien.FileNames
    65. 'MessageBox.Show("Öffen: " & s)
    66. fs = New FileStream(s, FileMode.Open)
    67. sr = New StreamReader(fs)
    68. Do Until sr.Peek() = -1
    69. zeile = sr.ReadLine()
    70. txtText.Text &= zeile & vbCrLf
    71. Loop
    72. sr.Close()
    73. Next
    74. Else
    75. MessageBox.Show("Abbruch")
    76. Exit Sub
    77. End If
    78. End Sub
    79. Private Sub mnuBeenden_Click(sender As Object, e As EventArgs) Handles mnuBeenden.Click
    80. Close()
    81. End Sub
    82. End Class
    Willkommen im Forum :)
    Ohne deinen Code jetzt zu beurteilen stelle ich dir 2 Fragen:
    Zeile #32: Was hast du mit der Variable Datei vor? (Die Variable schaut verwaist aus...)
    Zeile #36: Was steht den in der Konstante dateipfad? siehe einmal den FileStream-Konstruktor an...
    Jou.
    Ebenfalls: Willkommen im Forum. :thumbup:

    Strongbow schrieb:

    Pfad "C:\Dokumente\Test

    Strongbow schrieb:

    VB.NET-Quellcode

    1. Const dateipfad = "C:\VBDN\Dokumente"
    Ja was denn nun?
    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!

    mox schrieb:

    geclosed
    wird er:

    Strongbow schrieb:

    VB.NET-Quellcode

    1. sr.Close()
    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!
    Erstmal,
    vielen Dank für die Infos.

    Den Dateipfad habe ich abgeändert und die Zeilen 31-33 wieder entfernt.
    Hier wollte ich noch eine weitere abfrage einfügen, bin aber noch nicht dazu gekommen.
    Leider bekomme ich noch immer die gleiche Info.

    Strongbow schrieb:

    Den Dateipfad habe ich abgeändert
    Mach mal ein kleines neues Projekt mit einem Button und einem Zugriff auf diesen Pfad / eine Datei da drin.
    Poste den präzisen Pfad.
    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!
    Ich habe nochmal ein kl. Prog geschrieben mit einem anderen Pfad und das funzt.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Dim lblA As Object
    4. Private Sub btnSchreiben_Click(sender As Object, e As EventArgs) Handles btnSchreiben.Click
    5. Dim fs As New FileStream("C:\test\Dokumente\test.txt", FileMode.Create)
    6. Dim sw As New StreamWriter(fs)
    7. sw.WriteLine(txtbox.Text)
    8. sw.Close()
    9. txtbox.Clear()
    10. End Sub
    11. Private Sub btnLesen_Click(sender As Object, e As EventArgs) Handles btnLesen.Click
    12. Dim fs As FileStream
    13. Dim sr As StreamReader
    14. Dim datei As String = "C:\test\Dokumente\test.txt"
    15. Dim zeile As String
    16. Try
    17. If Not File.Exists(datei) Then
    18. MessageBox.Show("Datei " & datei & " existiert nicht!")
    19. Exit Sub
    20. End If
    21. fs = New FileStream(datei, FileMode.Open)
    22. sr = New StreamReader(fs)
    23. Do Until sr.Peek() = -1
    24. zeile = sr.ReadLine
    25. txtbox.Text &= zeile & vbCrLf
    26. Loop
    27. sr.Close()
    28. Catch ex As Exception
    29. MessageBox.Show(ex.Message)
    30. End Try
    31. End Sub
    32. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    33. Close()
    34. End Sub
    35. End Class

    Strongbow schrieb:

    mit einem anderen Pfad
    Na also.
    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!