Ich bin mit DirectoryInfo.GetDirectories()
rekursiv zu finden, die alle Unterverzeichnisse unter dem angegebenen Pfad.
Aber ausschließen will ich den System Ordner und es gibt keinen klaren Weg für das.
In FindFirstFile/FindNextFile Dinge wurden klarer mit den Parametern.
@rslite es Recht ist .NET nicht geben, solche Filterung out-of-box, aber es ist nicht schwer zu implementieren:
MSDN-links:
FileSystemInfo.Attributes-Eigenschaft
FileAttributes-Enumeration
Dies ist ein großartiges Beispiel für ein Szenario, in dem Linq und Erweiterung der Methoden, die machen Dinge, die wirklich sauber und einfach.
Wenn Sie Gebäude ein .Netto-v2-Anwendung, dann können Sie LinqBridge, um Ihnen den Zugang zu all den coolen Linq to objects-Methoden (wie Where() und ToArray() oben).
Bearbeiten
In .net v4, die Sie verwenden würden EnumerateDirectories statt GetDirectories die Ihnen ermöglicht, die Ergebnisse Durchlaufen ohne Gebäude ein array im Speicher zuerst.
Würden Sie wahrscheinlich haben, um eine Schleife durch die Ergebnisse und ablehnen, die mit den Attributen, die Sie nicht möchten (verwenden Sie die Attribute-Eigenschaft).
Mithilfe der ultimative Sweet Linq