Advertisement
Guest User

Untitled

a guest
May 27th, 2015
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var i: integer;
  3. Node: TTreeNode;
  4. begin
  5.  
  6. Node := Form1.TreeView1.Items.AddChild(nil, 'C:\');
  7. Node.HasChildren := true;
  8. //TreeView1.OnClick:=@GetDir;
  9. GetDir(Node);
  10. TreeView1.Items.EndUpdate;
  11.  
  12. end;
  13.  
  14. procedure TForm1.GetDir(ParentNode: TTreeNode);
  15. var
  16. sr: TSearchRec;
  17. node: TTreeNode;
  18. path: string;
  19. begin
  20. node := ParentNode;
  21. path := '';
  22. Caption := node.Text;
  23. repeat
  24. path := IncludeTrailingPathDelimiter(node.Text) + path;
  25. node := node.Parent;
  26. until node = nil;
  27. //ShowMessage(path);
  28.  
  29. // Сначала ищем папки
  30. if FindFirstUTF8(path + '*.*', faDirectory, sr) = 0 then
  31. try
  32. repeat
  33. if (sr.Name = '.') or (sr.Name = '..') or
  34. (sr.Attr and faDirectory <> faDirectory) then Continue;
  35.  
  36. // Нашли Folder - вызываем рекурсивно GetDir
  37. node := TreeView1.Items.AddChild(ParentNode, IncludeTrailingPathDelimiter(sr.Name));
  38. //GetDir(node);
  39. until FindNextUTF8(sr) <> 0;
  40. finally
  41. FindCloseUTF8(sr);
  42. end;
  43.  
  44. // теперь - файлы
  45. if FindFirstUTF8(path + '*.*', faAnyFile, sr) = 0 then
  46. try
  47. repeat
  48. if (sr.Name = '.') or (sr.Name = '..') or
  49. (sr.Attr and faDirectory = faDirectory) then Continue;
  50.  
  51. // Нашли файл - просто добавляем его в дерево
  52. TreeView1.Items.AddChild(ParentNode, sr.Name);
  53. until FindNextUTF8(sr) <> 0;
  54. finally
  55. FindCloseUTF8(sr);
  56. end;
  57. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement