You can build the tree recursively.
For example, you could have a procedure like:

procedure BuildTree(item:TTreeItem; pathtring);

you start passing your root path and the root item, and then using "findfirst" and "findnext" you iterate throu the directory given in the path (first pass will be: textures, actors, models, etc).
For each step, you create a node, attach that node to the "item" you have as parameter and then call BuildTree on it again.

PseudoCode:
[pascal]
procedure BuildTree(item:TTreeItem; pathtring);
var new:TTreeItem;
begin
new := (new tree item);
new.parent := item;
for each subdir of path:
BuildTree(new, subdir);
end;
[/pascal]