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;
}


Leave a Reply

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

9 + one =


@