Buenas ! Tengo 3 foreach,uno para buscar cuantas carpetas hay en un directorio,otro para buscar los png que hay y otro para buscar los exe que hay. El problema es que para buscar cada exe y luego png doi 36 vueltas ,como puedo arreglarlo?como puedo hacer que solo busque los archivos con esas extensiones y no valla comprobando toodos los archivos? Y como puedo hacer que busque png y jpg? y lo mismo con exe y lnk?
foreach (string data in Directory.GetFiles(@dataApp)) {
if (Path.GetExtension(@data) == ".exe") {
...
foreach (string imagenes in Directory.GetFiles(@dataApp)) {
if (Path.GetExtension(@imagenes) == ".png") {
Cuando estás en el entorno de Visual Studio, selecciona el objeto "Directory" o el método "Getfiles", y pulsa la tecla F2, para abrir el examinador de objetos...
Y si no tienes instalado en casa el MSDN, entonces recurre a internet:
https://msdn.microsoft.com/es-es/library/system.io.directory(v=vs.110).aspx
...Entonces verás que el método "Getfiles", tiene varias sobrecargas...
Una de ellas por ejemplo tiene esta firma:
public static string[] GetFiles(string path, string searchPattern}Luego tú, lo invocarías de manera sencilla así:
foreach (string data in Directory.GetFiles(@dataApp, "*.png")) {
....
haz lo que quieras con el fichero obtenido......pero no te quedes sólo con esa sobrecarga, debes mirar, si otra te resulta aún más útil, en base a lo que luego pretendas hacer con el fichero obtenido...
por ejemplo Esta otra sobrecarga, tiene aún una opción más para buscar de forma recursiva en subcarpetas:
public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption )
(usando la opción AllDirectories)
Con lo que incluso te ahorrarías el bucle externo:
if (Directory.Exists(rutasapp)) {
foreach (string dataApp in Directory.GetDirectories(rutasapp)) {
También tienes en el mismo objeto directory, el método EnumerateFiles....
En fin, es info que está ahí, mejor si está instalado en tu equipo, así te basta usar la tecla F2 para navegar entre los objetos y ver qué método se ajusta mejor a tus necesidades... y si no lo tienes instalado, entonces la dirección de MSDN, debería estás en tus favoritos/marcadores:
https://msdn.microsoft.com/es-es/library/https://msdn.microsoft.com/es-es/library/ms310241