Локальный каталог и список файлов с использованием PrimeNg Treetable - проблема с форматированием данных - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь создать таблицу в Angular, в которой перечислены каталог / подкаталог и его соответствующие файлы. Мне удалось построить древовидную структуру данных для вышеупомянутого со стороны ядра. net. Но древовидная таблица поддерживает только определенную структуру JSON, которая немного отличается от того, что я сделал.

Поиск ценных входных данных для формирования соответствующей структуры данных.

Таблица дерева PrimeNG

Ниже приведен код для таблицы дерева.

<p-treeTable [value]="ohmDirList" *ngIf="ohmDirList">
  <ng-template pTemplate="header">
    <tr>
      <th>Name</th>
      <!--<th>Size</th>
      <th>Type</th>-->
    </tr>
  </ng-template>
  <ng-template pTemplate="body" let-rowNode let-rowData="rowData.directory">
    <tr>
      <td>
        <p-treeTableToggler [rowNode]="rowNode"></p-treeTableToggler>
        {{rowData.key}}
      </td>
      <!--<td>{{rowData.size}}</td>
      <td>{{rowData.type}}</td>-->
    </tr>
  </ng-template>
</p-treeTable>

Ниже приведен основной код. net, в котором я перечисляю dir / sub dir / files.

     public string GetTree()
     {
        string j = null;
        string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Test";
        List<string> dirs = new List<string>(Directory.EnumerateDirectories(docPath));
        j = GetDirectory(new DirectoryInfo(docPath)).ToString();
        return j;
    }

    JToken GetDirectory(DirectoryInfo directory)
    {
        return JToken.FromObject(new
        {
            directory = directory.EnumerateDirectories().ToDictionary(x => x.Name, x => GetDirectory(x)).ToList(),
            file = directory.EnumerateFiles().ToDictionary(x => x.Name, x => x.Length).ToList()
        });
    }

Ниже приведена функция TS

  ohmDirList: TreeNode[];
  getDirs() {
    this.metService.getDirs().subscribe((result: TreeNode[]) => { 
       this.ohmDirList = result;
    }), (error => { console.log(error) });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...