Leer carpetas y sub carpetas C# unity

Iniciado por aspiazu, 5 Abril 2017, 22:01 PM

0 Miembros y 1 Visitante están viendo este tema.

aspiazu

Buenas.

Necesito que mi programa lea las carpetas que tengo dentro de una carpeta,y lea los archivos que tengo dentro de esas carpetas (en este caso un .exe y unos .png)

El objetivo es que por cada carpeta que exista, se cree un botón con la imagen que hay dentro de esa carpeta y al dar click que se ejecute el .exe que hay dentro de la carpeta también.

if (Directory.Exists(rutasapp)) {
            foreach (string dataApp in Directory.GetDirectories(rutasapp)) {
                AppButton button = Instantiate(buttonPrefab);
                button.transform.SetParent(layout);

                //buscamos todos los ficheos que sean .exe y los guardamos en data
                foreach (string data in Directory.GetFiles(@dataApp)) {
                    if (Path.GetExtension(@data) == ".exe") {
                        //al clicar el boton ejecutamos el exe que hemos guardado anteriormente .NO FUNCIONA
                        button.GetComponent<Button>().onClick.AddListener(() => Process.Start(data));
                        UnityEngine.Debug.Log(data);

                    }
                    //buscamos todas las imagenes que sean .png y las guardamos en imagenes
                    foreach (string imagenes in Directory.GetFiles(@dataApp)) {
                        if (Path.GetExtension(@imagenes) == ".png") {
                            //UnityEngine.Debug.Log(imagenes);
                        }
                    }
                }
            }
        }
    }
Tengo ese codigo que funciona maso menos bien.Me crea unos botones por cada carpeta que tengo y luego busco los archivos que son .exe y .png y los guardo en data y imágenes.

Cuando agrego esta linea para que se ejecute el .exe, al intentar ejecutar el programa me da el siguiente error:

    button.GetComponent<Button>().onClick.AddListener(() => Process.Start(data));

NullReferenceException: Object reference not set to an instance of an object
¿Alguna idea de como hacerlo?