Como obter os nomes dos ficheiros e/ou subpastas de uma pasta com o Grasshopper? É possível fazê-lo com o componente C#. O James Ramsden demonstrou uma forma simples de obter os nomes das subpastas de um determinado caminho usando a classe DirectoryInfo. É possível fazer o mesmo para obter os nomes dos ficheiros usando a classe FileInfo. A melhor parte é que o método funciona nas versões do Rhino para macOs e Windows.
Use o código abaixo dentro de um componente C# com um input com o nome path que recebe objectos do tipo string.
private void RunScript(string path, ref object Dirs, ref object Files)
{
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(path);
System.IO.FileInfo fileInfo = new System.IO.FileInfo(path);
System.IO.DirectoryInfo[] dirInfos = dirInfo.GetDirectories("*.*");
System.IO.FileInfo[] fileInfos = dirInfo.GetFiles("*.*");
List<string> dirNames = new List<string>();
List<string> fileNames = new List<string>();
foreach(System.IO.DirectoryInfo d in dirInfos)
{
dirNames.Add(d.Name);
}
foreach(System.IO.FileInfo f in fileInfos)
{
fileNames.Add(f.Name);
}
Dirs = dirNames;
Files = fileNames;
}

English
Português