Bezug auf WPF-FolderBrowser-Dialog, weitergehende Frage

  • WPF

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von asusdk.

    sehr strange, mit exakt deinem angehängten Projekt verhält es sich nach wie vor nicht anders, nur die 4 Pfeile (4 Laufwerke) aber sonst nichts !

    Nachtrag, in deinem Anhang, ist noch meine alte Zeile drin, und es funktioniert auch nach austausch durch die neue zeile nciht. evtl. das falsche angehangen ?
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Ähhh Yo, irgendwie beim zippen das falsche Folder gewählt.
    Lade gleich die richtige hoch

    EDIT: richtige Solution angehangen...
    Im Grunde gab es 2 Dinge, die falsch waren. Im Konstruktor hast Du einfach 2 neue Variablen erstellt und diesen die Übergebenen Werte hinzugefügt
    aus folderpath wird _folderpath (beachte den Unterstrich, so heißt nämlich die private propertie
    und eben die IsExpanded Returnt nun true wenn es einträge gibt die nicht nothing sind
    Dateien
    • NuIstRichtig.zip

      (14,7 kB, 67 mal heruntergeladen, zuletzt: )
    "Hier könnte Ihre Werbung stehen..."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MichaHo“ ()

    jup das funzt ^^ ich wundere mich gerade bloß über das mit den falschen Properties, da muss der telerik-converter wohl etwas nachbessern ^^

    Nachtrag:

    die extension

    VB.NET-Quellcode

    1. <Extension()>
    2. Function GetFolders(ByVal path As String) As List(Of DirectoryItem)
    3. Dim items = New List(Of DirectoryItem)()
    4. If Not Directory.Exists(path) Then Return New List(Of DirectoryItem)()
    5. Dim folders = Directory.GetDirectories(path)
    6. If folders.Length > 0 Then
    7. items.AddRange(folders.[Select](Function(f) New DirectoryItem With {.FullPath = f, .Type = DirectoryItemTypeEnum.Folder}))
    8. End If
    9. Return items
    10. End Function


    lasst das Programm allerdings nachwievor Crashen wenn es keinen Zugriff auf den jeweiligen Ordner erhält. (ich versuch mal das zu umgehen)


    Nachtrag 2:

    mit einem Try-Block scheints zu laufen

    VB.NET-Quellcode

    1. Try
    2. Dim folders = Directory.GetDirectories(path)
    3. If folders.Length > 0 Then
    4. items.AddRange(folders.[Select](Function(f) New DirectoryItem With {.FullPath = f, .Type = DirectoryItemTypeEnum.Folder}))
    5. End If
    6. Catch ex As Exception
    7. End Try




    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „asusdk“ ()

    Hi,
    Ja, das ist da auch nicht eingebaut, da bastel ich gerade noch selbst dran rum.
    Try Catch wird aber nicht die lösung sein.
    Ich prüfe wohl eher, ob ich Zugriff auf den Ordner habe, wenn ja, hinzufügenm, wenn nein nicht hinzufügen
    "Hier könnte Ihre Werbung stehen..."
    Ja das wäre vermutlich die sinnvollste variante, wüsste nur nicht wie ^^
    wobei ich zumindest wenn ich google als quelle verwende bei allen Directory(bz. Filesystem)-bezogenen CodeStückchen immer ein TryCatch vorfinde, daher denke ich das das hier doch die Lösung sein könnte
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „asusdk“ ()

    Hallo Leute.

    Man kann es schon mit TryCatch lösen. Aber wenn dann bitte nur für diese bestimmte Exception.

    Also catch As UnauthorizedAccessException denn wie hier zu sehen kann es mehrere geben welche wir ja nicht alle "schlucken" möchten.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    dann so ?

    VB.NET-Quellcode

    1. <Extension()>
    2. Function GetFolders(ByVal path As String) As List(Of DirectoryItem)
    3. Dim items = New List(Of DirectoryItem)()
    4. If Not Directory.Exists(path) Then Return New List(Of DirectoryItem)()
    5. Try
    6. Dim folders = Directory.GetDirectories(path)
    7. If folders.Length > 0 Then
    8. items.AddRange(folders.[Select](Function(f) New DirectoryItem With {.FullPath = f, .Type = DirectoryItemTypeEnum.Folder}))
    9. End If
    10. ' Catch ex As Exception
    11. Catch e As FileNotFoundException
    12. Console.WriteLine("File or Directory not found.")
    13. Catch e As DirectoryNotFoundException
    14. Console.WriteLine("Directory not found.")
    15. Catch e As DriveNotFoundException
    16. Console.WriteLine("Specified Drive in the path is invalid.")
    17. Catch e As PathTooLongException
    18. Console.WriteLine("pathlength exceeds the limit.")
    19. Catch e As UnauthorizedAccessException
    20. Console.WriteLine("no permissions.")
    21. Catch e As IOException When (e.HResult And &HFFFF) = 32
    22. Console.WriteLine("There is a sharing violation.")
    23. Catch e As IOException When (e.HResult And &HFFFF) = 80
    24. Console.WriteLine("The file already exists.")
    25. Catch e As IOException
    26. Console.WriteLine($"An exception occurred:\nError code: {e.HResult And &HFFFF}\nMessage: {e.Message}")
    27. End Try
    28. Return items
    29. End Function
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Ne AsusDK

    das bringt dir ja nichts. Da könntest du gleich mit Catch as Exception abfangen wenn du erst wieder ALLES ignorierst.

    Du willst den Fehler das auf ein Verzeichniss nicht zugegriffen werden kann abfangen. also fängst du nur diesen ab. Und zwar NUR diesen.
    Alle anderen sollen aber dennoch eine Exception werfen, falls etwas unerwarteten auftritt. Sonst hast du nie wieder eine chance auf vernünftiges Debugging.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##