none
Löschen eine Folder der mit dem FolderPicker ausgewählt oder erzeugt wurde RRS feed

  • Frage

  • Liebe Gemeinde,

    ich kann in meiner UWP alle in einem Folder, der mit dem FolderPicker ausgewählt oder erzeugt wurde, Folder und Files erzeugen, umbenennen und auch löschen. Ich kann aber den im FolderPicker gewählten oder erzeugten Folder nicht löschen. 

    Was ist der Grund dafür und gibt es dafür ein Workaround ?

    Danke für Eure Hilfe im Voraus


    Herbert Stejdir

    Montag, 11. Juli 2022 14:22

Antworten

  • Lieber Dimitar,

    herzlichen Dank für Deine rasche Antwort, leider funktioniert die von Dir gezeigte Lösung nicht.

    Der Folder den ich löschen will ist zwar irgendwann mit dem FolderPicker ausgewählt worden, ist dann aber in der globalen Variablen _folderMOD zwischengespeichert worden.

    var parent = _folderMOD.GetParentAsync (); liefert für parent null.

    Gebe ich denselben Befehl im Überwachungsfenster ein dann erhalte ich ein Resultat mit dem Wert 

    {System_comObject}

    Die Zusatzinformation <uap:Capability Name="documentsLibrary" /> mit dem Texteditor in das Manifest einzugeben funktioniert auch nicht, da ich nicht die richtige Stelle zum Einsetzen finde, ich erhalte nur Fehlermeldungen.

    Ich habe mich entschlossen das System folgendermaßen auszutricksen:

    der _folderMOD ist root aller meiner Daten; ich kann im _folderMOD alles machen, folder erezeugen, umbenennen und löschen. Daher mach ich folgendes:

    ich bette den _folderMOD in einen Parent ein, den ich vom FolderPicker auswählen lasse. Meine App weiß das und erzeugt den _folderMOD selbst als Unterordner des Parent. Jetzt kann ich den _folderMOD löschen und es bleibt nur der Parent als leere Hülle übrig.

    Das ist sicher keine elegante Lösung, da der Parent im Windows-Explorer extra per Hand gelöscht werden muss.

    Liebe Grüße 

    Herbert


    Herbert Stejdir

    Dienstag, 12. Juli 2022 09:29

Alle Antworten

  • Hallo Herbert,

    Es stellt sich aus folgendem Thread heraus, dass es um eine absichtliche Besonderheit (der mit dem FolderPicker erstellte Ordner kann ohne weiteres nicht gelöscht werden) geht, die in einer Fehlermeldung geschildert wird (siehe unten):
    [UWP][C#] Unable to delete "user selected folder" in UWP apps C#

    Der gewünschte Ordner kann immerhin gelöscht werden, indem auf den übergeordneten Ordner (mit GetParentAsync) zugegriffen wird, und danach mit der GetFolderAsync-Methode der Instanz des übergeordneten Ordners der gewünschte Ordner ausgesucht und gelöscht wird. Einen Beispielcode findest Du im obigen Thread. Ich führe hier der Vollständigkeit halber die Fehlermeldung an, die dieses Verhalten erwähnt:

    Exception thrown at 0x00007FFB7639A839 (KernelBase.dll) in RuntimeBroker.exe: WinRT originate error - 0x80070005 : 'Cannot delete or rename the specified folder (New folder). If the folder was acquired using the File Picker or the KnownFolders API, it cannot be deleted or renamed. Additionally, the folder cannot be deleted if it resides in a filtered location, such as the Documents library or removable devices.'.
    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 12. Juli 2022 05:17
    Moderator
  • Lieber Dimitar,

    herzlichen Dank für Deine rasche Antwort, leider funktioniert die von Dir gezeigte Lösung nicht.

    Der Folder den ich löschen will ist zwar irgendwann mit dem FolderPicker ausgewählt worden, ist dann aber in der globalen Variablen _folderMOD zwischengespeichert worden.

    var parent = _folderMOD.GetParentAsync (); liefert für parent null.

    Gebe ich denselben Befehl im Überwachungsfenster ein dann erhalte ich ein Resultat mit dem Wert 

    {System_comObject}

    Die Zusatzinformation <uap:Capability Name="documentsLibrary" /> mit dem Texteditor in das Manifest einzugeben funktioniert auch nicht, da ich nicht die richtige Stelle zum Einsetzen finde, ich erhalte nur Fehlermeldungen.

    Ich habe mich entschlossen das System folgendermaßen auszutricksen:

    der _folderMOD ist root aller meiner Daten; ich kann im _folderMOD alles machen, folder erezeugen, umbenennen und löschen. Daher mach ich folgendes:

    ich bette den _folderMOD in einen Parent ein, den ich vom FolderPicker auswählen lasse. Meine App weiß das und erzeugt den _folderMOD selbst als Unterordner des Parent. Jetzt kann ich den _folderMOD löschen und es bleibt nur der Parent als leere Hülle übrig.

    Das ist sicher keine elegante Lösung, da der Parent im Windows-Explorer extra per Hand gelöscht werden muss.

    Liebe Grüße 

    Herbert


    Herbert Stejdir

    Dienstag, 12. Juli 2022 09:29