Holen Sie sich alle sub-Verzeichnisse, nur Dateien enthalten, die
Ich habe einen Weg und ich möchte die Liste der Unterverzeichnisse, wobei jedes Unterverzeichnis enthält keine anderen Verzeichnis. (Nur die Unterverzeichnisse, die nicht enthalten Ordner, sondern nur Dateien.)
Jede intelligente Art und Weise, dies zu tun?
- Ich fürchte, ich verstehe nicht, das bit in Klammern an alle, könnten Sie versuchen Sie es umschreiben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist mein Verständnis, dass Sie möchten, um eine Liste der Unterverzeichnisse unterhalb einer bestimmten Pfad enthalten, nur Dateien.
Directory.GetDirectories(subdirectory)
Rückgabe eines leerenstring[]
, die eineLength
von0
. Daher wählen wir nur Verzeichnisse, die übereinstimmung dieses Kriteriums zu greifen, die Verzeichnisse enthalten nur die Dateien (evtl. keine Dateien, obwohl).where !Directory.GetDirectories(subdirectory).Any()
stattwhere Directory.GetDirectories(subdirectory).Length == 0
um die Bedeutung etwas klarer 🙂DirectoryInfo
Können Sie die
- Verzeichnis.GetDirectories
Methode.Aber ich bin nicht sicher, ob ich deine Frage verstanden richtig... könnten Sie das klären ?
Basierend auf Havard Antwort, aber ein wenig kürzer (und vielleicht etwas leichter zu Lesen, weil es verwendet
!Subdirs.Any()
stattSubdirs.Length == 0
):Beachten Sie auch, dass dies erfordert
using System.Linq;
zu arbeiten, da es verwendet die LINQ-Abfrage-Sprache. (Und natürlichusing System.IO;
für dieDirectory
Klasse :))