Feedback

C# - Leere Unterverzeichnisse löschen

Veröffentlicht von am 27.09.2017
(0 Bewertungen)
Löscht rekursiv leere Unterverzeichnisse in einer Verzeichnisstruktur.
GFU-Schulungen  [Anzeige]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

public static void DeleteEmptySubdirectories(string path)
        {
            try
            {
                foreach (var directory in Directory.EnumerateDirectories(path))
                {
                    DeleteEmptySubdirectories(directory);
                }
                if (!Directory.EnumerateFileSystemEntries(path).Any())
                {
                        Directory.Delete(path);
                }
            }
            catch (Exception e)
            {
                throw new IOException($"Exception on deleting empty subdirectories in path '{path}'. See inner exception for details.", e);
            }
        }
Abgelegt unter Verzeichnis, Directory, löschen, delete.

2 Kommentare zum Snippet

Martin Dauskardt schrieb am 07.10.2017:
Recursiv geht oft mal schief.In diesem Fall wird ein Schreibfehler die Ausführung verhindern. Der Aufruf removeEmptySubdirectories(directory) zeigt ins Leere.
Patrick Semmler schrieb am 11.10.2017:
Ups, da hat der Fehlerteufel zugeschlagen. Beim Veröffentlichen des Snippets habe ich die Methode nochmal umbenannt, und dabei den rekursiven Aufruf vergessen. Sorry. Wird sofort korrigiert.
Klar schlägt die Methode beim Aufruf fehl, falls es einen Schreibschutz gibt. Die Fehlerbehandlung hatte ich nicht mit berücksichtigt, da die Methode in einem Kontext bei mir eingesetzt wird, in dem es in der Regel zu keinem Schreibfehler kommt. Aber sicher, sauberer wäre es, die Exception zu fangen, eine neue Exception mit detaillierter Information zu werfen und die original Exception als InnerException mitzugeben. Ich habe das mal so angepasst.
Für konstruktive Kritik bin ich selbstverständlich offen :-)
 

Logge dich ein, um hier zu kommentieren!