Я пытаюсь создать таблицу в 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) });
}