Dateien und Ordner löschen, kopieren, verschieben und umbenennen per IFileOperation

    • VB.NET
    • .NET (FX) 4.5–4.8

      Dateien und Ordner löschen, kopieren, verschieben und umbenennen per IFileOperation

      Hi@all

      Man kennt das ja. Man möchte zB. einen Ordner kopieren, löschen usw. und evtl. sogar noch einen Dialog für den Fortschritt anzeigen oder einen Dialog ob vorhandene Dateien ersetzt/übersprungen werden sollen. Ist mit .Net Mitteln zwar alles machbar, aber doch recht aufwendig. Das Interface IFileOperation vereinfacht das ganze da hier bereits alles enthalten ist. Ja ich weis, es gibt noch die API SHFileOperation. Die hat aber ein paar kleine Einschränkungen. Nachzulesen auf docs.microsoft.com/en-us/windo…re-ifileoperation#remarks

      Der Vorteil von IFileOperation ist das verschiedene Dateioperationen (zB kopieren eines oder mehrere Ordner/Datei(en) und löschen eines anderen Ordner) gleichzeitig ausgeführt werden können. Dazu ruft man zB. IFileOperation::CopyItem(s) und danach IFileOperation::DeleteItem(s) auf. Das ganze wird erst dann ausgeführt, wenn man IFileOperation::PerformOperations aufruft. Die Aktionen werden dann entsprechend in einem FortschrittsDialog angezeigt. Hier hat man auch noch die Auswahl zwischen den modernen und den etwas älteren Dialogen (siehe Bilder). Für jede Aktion werden entsprechende Events gefeuert die Ausgewertet werden können. Man kann das ganze auch im Silent-Modus laufen lassen (ohne Standard-Dialoge) und die Events nutzen, um damit zB. einen eigenen FortschrittsDialog zu füttern. Was in diesem Beispiel nicht enthalten ist, ist das Ändern diverser Eigenschaften vom Dateien und/oder Ordner in einem Rutsch. Das ganze ist wie immer eher Testcode der zeigt wie es funktioniert. Ansonsten: nix extra Verweise oder oder und das übliche, es darf gern Verbessert, Fehler beseitigt und Erweitert werden.
      Bilder
      • IFileOperation_NewDialog.png

        8,67 kB, 449×287, 87 mal angesehen
      • IFileOperation_NewDialog_Replace.png

        9,98 kB, 449×306, 87 mal angesehen
      • IFileOperation_OldDialog.png

        26,2 kB, 402×255, 77 mal angesehen
      • IFileOperation_OldDialog_Replace.png

        26,5 kB, 482×478, 94 mal angesehen
      • IFileOperation_OldDialog_Replace1.png

        22,74 kB, 452×535, 83 mal angesehen
      Dateien
      Mfg -Franky-

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „-Franky-“ ()