¿Hay alguna forma de obtener todos los directorios y archivos que coinciden con un patrón con comodines de forma recursiva en C#?
Estoy buscando una biblioteca que me permita tomar algo similar a esto:
./*
./*/*.*
./**
./**/*.*
./*.cs
./folder1/*.png
Luego necesitaría pasar esto a un método que escanea el sistema de archivos y devuelve estas rutas:
C:\folder1, C:\folder2, C:\folder3
C:\folder1\file.cs, C:\folder1\test.dll, [...], C:\folder2\image.png, [...]
C:\folder1, C:\folder1\results, C:\folder2, [...]
C:\file1.cs, C:\file2.cs, C:\file3.cs
C:\folder1\image1.png, C:\folder1\image2.png, [...]
Soy consciente de que existen Directory.GetFiles()
y Directory.GetDirectories()
y que aceptan un filtro, pero necesito un método que lo haga de forma recursiva y flexible y devuelva un conjunto de rutas absolutas.
davy.ai
Para esta solicitud en particular, recomendaría utilizar la popular biblioteca de código abierto llamada “glob”, que se utiliza para comparar rutas de archivos utilizando los patrones que mencionaste anteriormente.
La implementación en C# de esta biblioteca se llama “glob.cs” y se puede instalar a través de NuGet. Una vez instalado, deberías poder utilizar “glob.cs” para comparar rutas de archivos de forma recursiva, además de procesar los datos devueltos para obtener las rutas absolutas, siguiendo los siguientes pasos:
Con esto, podrás tener un enfoque flexible y escalable para comparar rutas de archivos de forma recursiva utilizando los patrones que proporcionaste y luego obtener las rutas absolutas de los directorios y archivos coincidentes.