"Der Zugriff auf den Pfad "D:\Users\Network\Desktop\Gif" wurde verweigert."

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Hatschi.

    "Der Zugriff auf den Pfad "D:\Users\Network\Desktop\Gif" wurde verweigert."

    Hallo Leute.
    Ich habe ein Programm in Visual Basic 2010 geschrieben, dass den
    Ordnerinhalt in einer Textdatei abspeichern soll. Zum Beispiel hat der
    Ordner folgenden Inhalt:


    • Bild1.gif
    • Bild2.gif
    • Bild3.gif
    Dann soll das oben in einer Textdatei abgespeichert werden. Wenn
    ich das Programm starte und den Ziel Ordner und den Ordner in dem es
    abgespeichert werden soll auswähle und danach auf Speicher drücke kommt
    im Codefenster die Naricht:



    UnauthorizedAccesException wurde nicht behandelt.
    Der Zugriff auf den Pfad "D:\Users\Network\Desktop\Gif" wurde verweigert.





    Weiß jemand wie ich das beheben kann? Als Administrator ausführen geht auch nicht.
    Danke vielmals!
    Dann nimm einen Pfad, der als Nicht-Administrator zugreifbar ist.
    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!
    C: und D: sind meine Partitionen ;)
    Und ein Pfad nehmen der ohne Administratorrechte geht ist aber nicht die Lösung des Problems.
    Button3 ist der Button um die Textdatei zu Erstellen


    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System
    3. Imports System.Text
    4. Public Class Form1
    5. Dim pfad As String
    6. Dim pfad2 As String
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    10. Dim f As String
    11. f = TextBox1.Text
    12. Dim direktion As New System.IO.DirectoryInfo(pfad)
    13. For Each file1 As System.IO.FileInfo In direktion.GetFiles
    14. If file1.Extension = f Or file1.Extension = f Then
    15. ListBox1.Items.Add(file1.FullName)
    16. End If
    17. Next
    18. End Sub
    19. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    20. FolderBrowserDialog1.ShowDialog()
    21. pfad = FolderBrowserDialog1.SelectedPath
    22. TextBox2.Text = FolderBrowserDialog1.SelectedPath
    23. End Sub
    24. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    25. Dim p As String = (pfad2)
    26. Dim fs As FileStream = File.Create(p)
    27. Dim info As Byte() = New UTF8Encoding(True).GetBytes(p)
    28. fs.Write(info, 0, info.Length)
    29. fs.Close()
    30. End Sub
    31. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    32. FolderBrowserDialog2.ShowDialog()
    33. pfad2 = FolderBrowserDialog2.SelectedPath
    34. TextBox3.Text = FolderBrowserDialog2.SelectedPath
    35. End Sub
    36. End Class

    Tim2107 schrieb:

    Als Administrator ausführen geht auch nicht.

    Tim2107 schrieb:

    Und ein Pfad nehmen der ohne Administratorrechte geht ist aber nicht die Lösung des Problems.
    Das widerspricht sich irgendwie. :S
    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!
    Nicht zwangsweise, wenn beispielsweise UAC an ist steht dies in manchen Fällen im Konflikt mit "Als Administrator starten". Frag mich nicht wieso, der Sinn erschließt sich mir nicht aber aus Erfahrung kann ich sagen das es mitunter der Fall sein kann.
    Alle Ordner die ich auf dem Desktop erstelle sind schreibgeschützt. Wenn den Hacken rausmachen, abspeicher und wieder in die Eigenschaften gehen ist wieder der Hacken drin. Der Bug ist schon lange bekannt, aber hat mir nie Probleme gemacht bis heute :D
    Jemand eine Antwort parat?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Tim2107“ ()

    Hi
    kann es sein, dass du versuchst, einen Ordner zu beschreiben? Du suchst per FolderBrowserDialog den Ordner aus und speicherst dann eine Datei in genau diesen Pfad oder sehe ich das falsch?
    Da tränen mir die Augen:

    VB.NET-Quellcode

    1. If file1.Extension = f Or file1.Extension = f Then

    Schau dir auch mal IO.Directory.GetFiles und IO.Directory.GetDirectories an. Da brauchst du nicht über DirectoryInfos gehen, wenns einen nicht so umständlichen Weg gibt. Des weiteren frägst du nicht ab, ob das von der ShowDialog-Methode zurückgegebene DialogResult OK ist. Klick mal auf Abbrechen.
    Über die anderen Kleinigkeiten sag ich jetzt einfach mal nichts, aber ich würde eine sinnvollere Benennung der Variablen empfehlen.

    Gruß
    ~blaze~

    VB.NET-Quellcode

    1. Dim f As String
    2. f = TextBox1.Text
    3. Dim direktion As New System.IO.DirectoryInfo(pfad)
    4. For Each file1 As System.IO.FileInfo In direktion.GetFiles
    5. If file1.Extension = f Or file1.Extension = f Then
    6. ListBox1.Items.Add(file1.FullName)
    7. End If
    8. Next
    9. End Sub


    Der Eintrag in der Textbox, sollte nur für die Dateiendung da sein, wenn man z.B. .gif eingibt sucht es alle .gif Files raus.
    Achja da mit dem

    VB.NET-Quellcode

    1. If file1.Extension = f Or file1.Extension = f Then
    sollte eigentlich

    VB.NET-Quellcode

    1. If file1.Extension = f then
    heißen :D
    Tut mir leid bin noch nicht so Erfahren mit VB :)
    Ja du versuchst in ein Ordner zu schreiben! Ich war mal so frei und habe das ganze Nachkonstruiert und verbessert.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System
    3. Imports System.Text
    4. Public Class Form1
    5. Dim pfad As String
    6. Dim pfad2 As String
    7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. End Sub
    9. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    10. Dim f As String = TextBox1.Text
    11. Dim direktion As New System.IO.DirectoryInfo(pfad)
    12. For Each file1 As System.IO.FileInfo In direktion.GetFiles
    13. If file1.Extension = f Then ListBox1.Items.Add(file1.FullName)
    14. Next
    15. End Sub
    16. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    17. With FolderBrowserDialog1
    18. If .ShowDialog = DialogResult.OK Then
    19. pfad = FolderBrowserDialog1.SelectedPath
    20. TextBox2.Text = pfad
    21. End If
    22. End With
    23. End Sub
    24. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    25. Dim p As String = pfad2 ' + 'Hier müsste der Name der Datei hinkommen
    26. Dim fs As FileStream = File.Create(p)
    27. Dim info As Byte() = New UTF8Encoding(True).GetBytes(p)
    28. fs.Write(info, 0, info.Length)
    29. fs.Close()
    30. End Sub
    31. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    32. With FolderBrowserDialog2
    33. If .ShowDialog = DialogResult.OK Then
    34. pfad2 = FolderBrowserDialog2.SelectedPath
    35. TextBox3.Text = pfad2
    36. End If
    37. End With
    38. End Sub
    39. End Class


    Da ich nicht genau weiß wie die Datei heißen soll, habe ich dir die Stelle kommentiert.